2021-03-11

                                                                                                                           记事本Java用到的知识点


 

  •           1.UndoManager维护一个有序的编辑列表和该列表中下一个编辑的索引.
  • 2.
  • 文本域与文本框的最大区别就是文本域允许用户输入多行文本信息。在 Swing 中使用 JTextArea 类实现一个文本域,其常用构造方法如下。
  • JTextArea():创建一个默认的文本域。
  • JTextArea(int rows,int columns):创建一个具有指定行数和列数的文本域。
  • JTextArea(String text):创建一个包含指定文本的文本域。
  • JTextArea(String text,int rows,int columns):创建一个既包含指定文本,又包含指定行数和列数的多行文本域。
  •  
  • .JTextArea 类的常用方法如表 1 所示。

 

 

  • 表1 JTextArea类的常用方法
  • 方法名称

 

 

 

  • 说明
  • void append(String str)
  • 将字符串 str 添加到文本域的最后位置
  • void setColumns(int columns)
  • 设置文本域的行数
  • void setRows(int rows)
  • 设置文本域的列数
  • int getColumns()
  • 获取文本域的行数
  • void setLineWrap(boolean wrap)
  • 设置文本域的换行策略
  • int getRows()
  • 获取文本域的列数
  • void insert(String str,int position)
  • 插入指定的字符串到文本域的指定位置
  • void replaceRange(String str,int start,int end)
  • 将指定的开始位 start 与结束位 end 之间的字符串用指定的字符串 str 取代

 

  • JFileChooser()
  •           构造一个指向用户默认目录的 JFileChooser
  • JFileChooser(File currentDirectory)
  •           使用给定的 File 作为路径来构造一个 JFileChooser
  • 3.JFileChooser (Java Swing提供的文件选择对话框)
  •  
  • 4.在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成。 File 类定义了一些方法来操作文件,如新建、删除、重命名文件和目录等。
  •  
  • 5.
  • JMenuBar,菜单栏。菜单栏组件添加到 JFrame 窗口后,在窗口的内容显示区域的顶部出现。实现一个菜单栏主要涉及三种类:
  • (1)JMenuBar
  • 表示一个菜单栏。
  • (2)JMenu
  • 表示菜单栏上的一个一级菜单。
  • (3)JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
  • 表示一级菜单下的一个子菜单项,三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。
  • PS: JMenu 继承自 JMenuItem,所以一个 JMenu 也可以当做是一个二级子菜单项,通过 JMenu 和 JMenuItem 之间的嵌套,可实现多级子菜单效果。
  • JMenu、JCheckBoxMenuItem、JRadioButtonMenuItem 均继承自 JMenuItem
     
  • 6.
  • JLabel类可以显示文本或图像。通过在显示区域中设置垂直和水平对齐来对齐标签的内容。默认情况下,标签在显示区域中垂直居中。默认情况下,纯文本标签前沿对齐; 默认情况下,仅图像标签水平居中。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/swing/swing_jlabel.html
  •  
  • 7.
  • JToolBar,工具栏。
  • JToolBar 提供了一个用来显示常用控件的容器组件。
  • 对于大多数的外观,用户可以将工具栏拖到其父容器四“边”中的一边,并支持在单独的窗口中浮动显示。为了正确执行拖动,建议将 JToolBar 实例添加到容器四“边”中的一边(其中容器的布局管理器为 BorderLayout),并且不在其他四“边”中添加任何子级。
  •  
  • 8.GregorianCalendar是一个计算函数,是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。是一种混合日历,可由调用者通过调用 setGregorianChange() 来更改起始日期。
  •  
  • 9.
  • 文件过滤器

  • JFileChooser可以在对话框中显示文件之前使用文件过滤器,该文件过滤器是应用的一组条件。
  • 文件过滤器是FileFilter类的一个对象,它位于javax.swing.filechooser包中。
  • FileFilter类是一个抽象类。 我们需要重写accept()和getDescription()方法。
  • 当文件选择器要显示文件时,使用文件引用调用accept()方法。 如果accept()方法返回true,则显示文件。 否则,不显示文件。
  •  
  • 10.
  • Java 多线程编程

  • Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
  • 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。
  • 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。
  • 多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。
  • 一个线程的生命周期

  • 线程是一个动态执行的过程,它也有一个从产生到死亡的过程。
  • 下图显示了一个线程完整的生命周期。
  • 新建状态:
  • 使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。
  • 就绪状态:
  • 当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。
  • 运行状态:
  • 如果就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态。处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。
  • 阻塞状态:
  • 如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该线程就从运行状态进入阻塞状态。在睡眠时间已到或获得设备资源后可以重新进入就绪状态。可以分为三种:
  • 等待阻塞:运行状态中的线程执行 wait() 方法,使线程进入到等待阻塞状态。
  • 同步阻塞:线程在获取 synchronized 同步锁失败(因为同步锁被其他线程占用)。
  • 其他阻塞:通过调用线程的 sleep() 或 join() 发出了 I/O 请求时,线程就会进入到阻塞状态。当sleep() 状态超时,join() 等待线程终止或超时,或者 I/O 处理完毕,线程重新转入就绪状态。
  • 死亡状态:
  • 一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。
  • 线程的优先级

  • 每一个 Java 线程都有一个优先级,这样有助于操作系统确定线程的调度顺序。
  • Java 线程的优先级是一个整数,其取值范围是 1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。
  • 默认情况下,每一个线程都会分配一个优先级 NORM_PRIORITY(5)。
  • 具有较高优先级的线程对程序更重要,并且应该在低优先级的线程之前分配处理器资源。但是,线程优先级不能保证线程执行的顺序,而且非常依赖于平台。
  • 创建一个线程

  • Java 提供了三种创建线程的方法:
  • 通过实现 Runnable 接口;
  • 通过继承 Thread 类本身;
  • 通过 Callable 和 Future 创建线程。
  • 通过实现 Runnable 接口来创建线程

  • 创建一个线程,最简单的方法是创建一个实现 Runnable 接口的类。
  • 为了实现 Runnable,一个类只需要执行一个方法调用 run(),声明如下:
  •  
  • public void run()
  • 你可以重写该方法,重要的是理解的 run() 可以调用其他方法,使用其他类,并声明变量,就像主线程一样。
  • 在创建一个实现 Runnable 接口的类之后,你可以在类中实例化一个线程对象。
  • Thread 定义了几个构造方法,下面的这个是我们经常使用的:
  • Thread(Runnable threadOb,String threadName);
  • 这里,threadOb 是一个实现 Runnable 接口的类的实例,并且 threadName 指定新线程的名字。
  • 新线程创建之后,你调用它的 start() 方法它才会运行。
  • void start();
  •  
  • 11.
  • Container 布局容器

  • 用于布局的容器组件,方便快速搭建页面的基本结构:
  • <el-container>:外层容器。当子元素中包含 <el-header><el-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。
  • <el-header>:顶栏容器。
  • <el-aside>:侧边栏容器。
  • <el-main>:主要区域容器。
  • <el-footer>:底栏容器。
  • 以上组件采用了 flex 布局,使用前请确定目标浏览器是否兼容。此外,<el-container> 的子元素只能是后四者,后四者的父元素也只能是 <el-container>
  • 常见页面布局

  •  
  • 12.
  • text.getDocument().addUndoableEditListener(manager);        // 用于获得程序当前有效的文档
  •  
  • 13.
  • JScrollPane

  • 当一个容器内放置了许多组件,而容器的显示区域不足以同时显示所有组件时,如果让容器带滚动条,通过移动滚动条的滑块,容器中位置上的组件就能看到。滚动面板JScrollPane能实现这样的要求,JScrollPane是带有滚动条的面板。JScrollPane是Container类的子类,也是一种容器,但是只能添加一个组件。JScrollPane的一般用法是先将一些组件添加到一个JPanel中,然后再把这个JPanel添加到JScrollPane中。这样,从界面上看,在滚动面板上,好像也有多个组件。在Swing中,像JTextArea、JList、JTable等组件都没有自带滚动条,都需要将它们放置于滚动面板,利用滚动面板的滚动条,浏览组件中的内容
  •  
  •  
  • 14.
  • GraphicsEnvironment类描述了特定平台上的Java(tm)应用程序可用的GraphicsDevice对象和Font对象的集合。 GraphicsEnvironment的资源可能是本地资源, GraphicsEnvironment可能是远程计算机上的资源。 GraphicsDevice对象可以是屏幕,打印机或图像缓冲区,是Graphics2D绘图方法的目的地。 每个GraphicsDevice都有许多与之关联的GraphicsConfiguration对象。 这些对象指定可以使用GraphicsDevice的不同配置。
  •  
  • 15.
  • addActionListener

  • public void addActionListener(ActionListener l)
    
    添加指定的动作侦听器,以接收发自此按钮的动作事件。当用户在此按钮上按下或释放鼠标时,发生动作事件。如果 l 为 null,则不抛出任何异常,也不执行任何动作。
    
    
  • 16.
  • actionPerformed
  • 在swing 开发中,有个接口ActionListener
  • 这个接口中有个方法actionPerformed()
  • public void actionPerformed(ActionEvent e)
  • 这是接口ActionListener里面定义的一个抽象方法,所有实现这个接口的类都要重写这个方法。
  • 一般情况下,这是在编写GUI程序时,组件发生“有意义”的事件时会调用这个方法,比如按钮被按下,文本框内输入回车时都会触发这个事件,然后调用你编写的事件处理程序。
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胜吾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值