课程总结
instanceof关键字
在java中可以使用instanceof关键字判断一个对象到底是不是哪个类的实例
对象instanceof类→返回boolean类型
接口
接口是java中最重要的概念,接口可以理解为一种特殊的类,由全局变量和公共的抽象方法所组成。
实现接口
接口要使用也必须通过子类,子类通过implements关键字实现接口
继承抽象类实现接口
一个子类可以同时继承抽象类和实现接口
格式
class 子类 extends 抽象类 implements 接口A,接口B.....{}
接口和抽象类的使用限制
· 允许一个抽象类实现多个接口
· 一个接口是不允许继承抽象类的
· 允许一个接口继承多个接口
· 一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
interface 子接口 extends 父接口A,父接口B,.....{}
抽象类与接口的区别
区别点 |
抽象类 |
接口 |
定义 |
包含一个抽象方法的类 |
抽象方法和全局变量的集合 |
组成 |
构造方法,抽象方法,普通方法,常量,变量 |
常量,抽象方法 |
使用 |
子类继承抽象类 |
子类实现接口 |
关系 |
抽象类可以实现多个接口 |
接口不能继续抽象类,但允许继承多个接口 |
常见设计模式 |
模板设计 |
工厂设计,代理设计 |
对象 |
都通过对象的多态性产生实例化对象 |
|
局限 |
抽象类有单继承的局限 |
接口没有此局限 |
实际 |
作为一个模板 |
是作为一个标准或是表示一种能力 |
选择 |
如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限 |
|
异常
· 异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。
· 异常代表了一种意外的情况,代表了正常情况下不会发生的情况。
· 在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保住程序的正常执行。
异常处理格式
try{
//有可能出现异常的语句
}catch(异常类 异常对象){
//编写异常处理语句
}[catch(异常类 异常对象){
//编写异常处理语句
}...]
[finally{
一定会运行到的代码;
}]
Java的异常处理机制
Java异常处理也是按照面向对象的方式进行处理的。
步骤如下:
1 一旦产生异常,则首先会产生一个异常类的实例化对象;
2 在try语句中队异常对象进行捕捉;
3 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码
使用Exception处理其他异常
· 根据对象的多态性,所以的子类实例可以全部使用父类接收,那么就可以利用向上转型的概念,让所有的异常对象都使用Exception接收。
· 注意:在Java中所以捕获范围小的异常,必须放在捕获范围大的异常之前,否则程序在编译的时候就会出现错误提示。
throws关键字
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理,而是交给方法调用处进行处理。
throws使用格式
public 返回值类型 方法名称(参数列表...) throws 异常类{}
throw关键字
可以直接使用throw抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可。
注意:throw不会单独的使用
· throw关键字的使用完全符合异常处理机制
· 但是,一般来讲用户都在避免异常的产生,所以不会手工抛出一个新的异常类的实例,而往往会抛出程序中已经产生的异常实例类。
Exception与RuntimeException
这两类的区别如下:
· Exception在程序中是必须使用try...catch进行处理。
· RuntimeException可以不使用try...catch进行处理,但是如果有异常产生,则异常将有JVM进行处理。
进程与线程
● 进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。
● 多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。
Java中线程的实现
● 在Java中要实现多线程代码的两种手段:
● 继承Thread类
● 实现Runnable接口
启动线程
线程的主要代码是在run方法里写的,但是启动的时候是调用Thread的start方法启动。
Thread类和Runnable接口的区别
● 实际上Thread类和Runnable接口之间在使用上也是有所区别的,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,则可以方便的实现资源的共享。
线程的状态
● 要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有五种状态,即创建、就绪、运行、阻塞、终止。
线程操作的主要方法
取得和设置线程名称;
● 在Thread类中,可以通过getName()方法取得线程的
名称,通过setName()方法设置线程的名称。
● 线程的名称一般在启动线程前设置,但也允许为已经运
行的线程设置名称。允许两个Thread对象有相同的名字,但为了清晰,应该尽量避免这种情况的发生。
● 另外,如果程序并没有为线程指定名称,则系统会自动的为线程分配-一个名称。
判断线程是否启动
● 通过Thread类之中的start()方法通知CPU这个线程己经准备好启动,之后就等待分配CPU资源,运行此线程了。那么如何判断一个线程是否已经启动了呢?在Java中可以使用isAlive()方测试线程是否已经启动而且仍然在启动。
线程的强制运行
● 在线程操作中, 可以使用join()方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待此线程完成之后才可以继续执行。
线程的休眠
● 在程序中允许一个线程进行暂时的休眠,直接使用Thread.sleep()方法即可。
中断线程
● 当一个线程运行的时候,另外一个线程可以直接通过interrrupt()方法,中断其运行状态。
线程了礼让
● 在线程操作中,也可以使用yield()方法将一个线程的操作暂时让给其他线程执行。
同步代码块
● 在代码块上加上“synchronized"关键字的话,则此代码块就称为同步代码块。
● 代码块格式:
synchronized(同步对象){
需要同步的代码;
}
File类
· 在整个io包中,唯一表示与文件本身有关的类就是File类。
· 使用File类可以进行创建或删除文件等常用操作。
· 要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示:
public File(String pathname)
→实例化File类的时候,必须设置好路径。
File类中的主要方法和常量
方法或常量 |
类型 |
描述 |
public static final String pathSeparator |
常量 |
表示路径的分隔符(windows是:“;” ) |
public static final String separator |
常量 |
表示路径的分隔符( windows是:“” ) |
public File(String pathname) |
构造 |
创建File类对象, 传入完整路径 |
public boolean createNewFile() throws IOException |
普通 |
创建新文件 |
public boolean delete() |
普通 |
删除文件 |
public boolean exists() |
普通 |
判断文件是否存在 |
public boolean isDirectory() |
普通 |
判断给定的路径是否是一个目录 |
public long lenglh() |
普通 |
返回文件的大小 |
public String[] list() |
普通 |
列出指定目录的全部内容,只是列出了名称 |
public Filc[] listFilcs() |
普通 |
列出指定目录的全部内容,会列出路径 |
public boolean mkdir() |
普通 |
创建一个目录 |
public boolean renameTo(File dest) |
普通 |
为已有的文件重新命名 |
流
· 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
字节流与字符流
· 在java.io包中操作文件内容的主要有两大类:
· 字节流
· 字符流
· 两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使用的是InputStream, 在字符流中输出主要是使用Writer类完成, 输入主要是使用Reader类完成。
字节流
· 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。
· 字节输出流: OutputStream
· 字节输入流: InputStream
追加新内容
· 之前的所有操作中,如果重新执行程序, 则肯定会覆盖文件中的已有内容, 那么此时可以通过
FielOutputStream向文件中追加内容,FileOutputStream的另外一个构造方法:
· public FileOutputStream(File file,boolean append) throwsFileNotFoundException
· 在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容。
· 既然程序可以向文件中写入内容,则就可以通过InputStream从文件中把内容读取进来,首先来看InputStream类的定义:
· public abstract class InputStream extends Objectimplements Closeable
· 与OutputStream类一 样, InputStream本 身也是-一个抽象类,必须依靠其子类, 如果现在是从文件中读取,子类肯定是FileInputStream。观察FileInputStream类的构造方法:
· public FilelnputStream(File file) throws FileNotFoundException
字符流
· 在程序中一个字符等于2个字节,那么JAVA提供了Reader、Writer两 个专门操作字符流的类。
· 字符输出流: Writer
· 字符输入流: Reader
使用FileWriter追加文件的内容
· 在使用字符流操作的时候,也可以实现文件的追加功能, 直接使用FileWriter类中的以下构造即可实现追加:
· public FileWriter(File file,boolean append) throwsIOException
· 将append的值设置成true,就表示追加。
字符输入流: Reader
· Reader是使用字符的方式从文件之中取出数据,Reader类的定义如下:
· public abstract class Reader extends Object implementsReadable, Closeable
· Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。. FileReader的构造方法定义如下:
· public FileReader( File file) throwsFileNotFoundException
字节流与字符流的区别
· 字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。
· 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
· OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
· InputStreamReader: 是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
管道流
· 管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream) 、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:
· public void connect(PipedInputStream snk) throws IOException
打印流
· 在整个IO包中,打印流是输出信息最方便的类,主要包含:
· 字节打印流(PrintStream)
· 字符打印流(PrintWriter)
· 打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。
System类的常量
· System表示系统类,实际上在java中System类也对IO给予了一定的支持。
System类的常量 |
描述 |
public static final PrintStream out |
对应系统标准输出,一 般是显示器 |
public static final PrintStream.err |
错误信息输出 |
public static final InputStream in |
对应着标准输入,一般是键盘 |
GUI
Java图形开发有两种可以使用的技术:AWT、Swing
· AWT:大量使用Windows的系统函数
· Swing:采用Java实现用户界面,可以在任意的系统平台上工作
AWT
AWT(Abstract Windowing Toolkit),抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
AWT中的所有工具类都保存在java.awt包中,此包中的所有操作类可用来建立图形用户界面(GUI)的类,这些类又被称为组件(components)。
AWT包中提供的所有工具类,主要分为以下三种:
➢ 组件:Component
➢ 容器:Container
➢ 布局管理器:LayoutManager
组件
➢ 在图形界面中,用户经常会看到按钮、标签、菜单等组件。
➢ 组件会在一个窗体上显示。
➢ 在整个AWT包中,所有的组件类都是从Component和MenuComponet扩展而来的,这些类会继承这两个类的公共操作。
容器(Container)
➢ 所有的AWT组件都应该放到容器之中。
➢ 在容器中,所有的组件都可以设置在容器中的位置、大小等。
➢ 所有的容器都是Component的子类。
布局管理器(LayoutManager)
➢ 使用布局管理器可以使容器中的组件按照指定的位置进行摆放。即使容器改变了大小,布局管理器也可以准确的把组件放到指定的位置,这样就可以有效
的保证版面不会混乱。
➢ 在AWT中所有的布局管理器都是LayoutManager的子类。
Swing简介
➢ AWT大量的引入了Windows函数, 称为重量级组件。
➢ Swing使 用Java语言实现,是以AWT平台为基础构建起来的新组件,属于轻量级的图形界面组件,直接使用Swing可以更加轻松的构建用户界面。
基本容器JFrame类的常用操作方法
➢ 使用JFrame类创建一个窗口
No. |
方法 |
类型 |
描述 |
1 |
public JFrame0 throws HeadlessException |
构造 |
创建一个普通的窗体对象 |
2 |
public JFrame (String title) throws He adlessException |
构造 |
创建一个窗体对象,并指定标题 |
3 |
public void setSize(int width, int height) |
普通 |
设置窗体大小 |
4 |
public void setSize(Dimension d) |
普通 |
通过Dimension设置窗体大小 |
5 |
public void setBackground(Color c) |
普通 |
设置窗体的背景颜色 |
6 |
public void setLocation(int x,int ) |
普通 |
设置组件的显示位置 |
7 |
public void setLocation(Point p) |
普通 |
通过Point来设置组件的显示位置 |
8 |
public void setVisible(boolean b) |
普通 |
显示或隐藏组件 |
9 |
public Component add(Component comp) |
普通 |
向容器中增加组件 |
10 |
public void setLayout(LayoutManager mgr) |
普通 |
设置布局管理器,如果设置为null表示不使用 |
11 |
public void pack() |
普通 |
调整窗口大小,以适合其子组件的首选大小和布局 |
12 |
public Container getContentPane() |
普通 |
返回此窗体的容器对象 |
Dimension类
➢ 在JFrame中设置窗体的大小,也可以使用Dimension类完成。➢此类封装了组件的现实宽度和高度。
Point类
➢ 组件的显示位置也可以使用Point类指定,此类封装的是显示位置的X、Y坐标。
组件JLabel类的常用方法和常量
No. |
方法及常量 |
类型 |
描述 |
1 |
public static final int LEFT |
常量 |
标签文本左对齐 |
2 |
public static final int CENTER |
常量 |
标签文本居中对齐 |
3 |
public static final int RIGHT |
常量 |
标签文本右对齐 |
4 |
public JLabelO throws HeadlessException |
构造 |
创建一个ILabeI对象 |
5 |
public JLabel(String text) throws HeadlessException |
构造 |
创建一个标签并指定文本内容,默认为左对齐 |
6 |
public Label(String text,int alignment) throws HeadlessException |
构造 |
创建一个标签并指定文本内容以及对齐方式,可以使用JLabel. LEFT. JLabel RIGHT、JLabe1.CENTER三个值 |
7 |
public JLabel(String text,Icon icon, int horizontalAlignment) |
构造 |
创建具有指定文本、图像和水平对齐方式的JLabeI对象 |
8 |
public JLabel(Icon image,int horizontalAlignment) |
构造 |
创建具有指定图像和水平对齐方式的JLabel实例 |
9 |
public void setText(String text) |
普通 |
设置标签的文本 |
10 |
public String getText() |
普通 |
取得标签的文本 |
11 |
public void setAlignment(int alignment) |
普通 |
设置标签的对齐方式 |
12 |
public void setIcon(Icon icon) |
普通 |
设置指定的图象 |
JButton组件表示一个普通的按钮,直接使用此类就可以在窗体中增加一个按钮。
布局管理器
· 使用布局管理器可以管理组件的显示位置,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,都要用到布局管理器。
· 在Swing中使用的所有布局管理器都实现LayoutManager接口,在Swing中主要使用以下五种常见的布局管理器:
➢ FlowLayout
➢ BorderIayout
➢ GridIayout
➢ Cardlayout
➢ 绝对定位。
FlowLayout
FlowLayout属于流式布局管理器,使用此种布局方式,所有的组件会像流水一样一次进行排列。
BorderLayout
BorderI ayout将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。
GridLayout
➢ GridIayout布局管理器是以表格的形式进行管理的
➢ 在使用此布局管理器的时候必须设置显示的行数和列数
CardLayout
➢ CardLayout就是将一组组彼此重叠的组件进行布局,就像一张张卡片一样,这样每次只会展现一个界面
绝对定位
如果不在窗体中指定布局管理器,也可以通过设置绝对坐标的方式完成布局设置。
public void setBounds(int x,int y,int width,int height)
JPanel
➢ 使用Jpanel可以完成各种复杂的界面显示。
➢ 在JPanel中可以加入任意的组件,之后直接将Jpanel容器加入到JFrame容器中即可显示。
应用:可以将多个组件加入到JPanel中实现复杂的排列。
➢ 使用JPanel并结合LayoutManager可以方便地管理组件。
➢ 使用LayoutManager对多个Jpanel进行排列,而每个JPanel中也可以分别使用不同的LayoutManager管理组件,完成对组件进行复杂的排列。
JSplitPane
JSplitPane主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列。
JSplitPane类的主要方法和常量
No. |
方法及常量 |
类型 |
描述 |
1 |
public static final int HORIZONTAL_ _SPLIT |
常量 |
表示水平分割 |
2 |
public static final int VERTICAL_ SPLIT |
常量 |
表示垂直分割 |
3 |
public JSplitP ane(int newOrientation) |
构造 |
创建对象,并指明分割方式 |
4 |
public JSplitP ane(int newOrient ation, boolean newContinuousLayout, ComponcntnewLeftComponent, Component newRightComponent) |
构造 |
创建对象、指明分割方式、分割条改变是否重绘图象以及两端的显示组件 |
5 |
public void setDividerL ocation( double proportionalLocation) |
普通 |
设置分割条的位置,按百分比 |
6 |
public void sctOneTouchExpandable(boolean newValue) |
普通 |
设置是否提供快速展开折叠的功能 |
7 |
public void setDividerSize(int newSize) |
普通 |
设置分割条大小 |
JTabbedPane
➢ JTabbedPane是在一个面板上设置多个选项卡供用户选择
➢ 如果用户需要查看相关方面信息,直接点开选项卡即可浏览,通过这种方式可以方便的管理相关信息。
No. |
方法及常量 |
类型 |
描述 |
1 |
static final int HORIZONTAL_ SCROLLBAR ALWAYS |
常量 |
始终显示水平滚动条 |
2 |
static final int HORIZONTAL_ SCROLLBAR _NEVER |
常量 |
任何情况下都不显示水平滚动条 |
3 |
static final int HORIZONTAL_ SCROLLBAR_ AS_ NEEDED |
常量 |
根据自身需要显示水平滚动条 |
4 |
static final int VERTICAL SCROLLBAR ALWAYS |
常量 |
始终显示垂直滚动条 |
5 |
static final int VERTICAL_ SCROLLBAR_ NEVER |
常量 |
任何情况下都不显示垂直滚动条 |
6 |
static final int VERTICAL SCROLLBAR AS_ NEEDED |
常量 |
根据自身需要显示垂直滚动条 |
7 |
public JScrolP ane(Component view) |
构造 |
将指定的组件加入滚动条,根据大小显示垂直或水平滚动条 |
8 |
public JScrolP ane(Component view,int vsbPolicy,int hsbPolicy) |
构造 |
将指定的组件加入滚动条,根据需要设置是否显示垂直或水平滚动条 |
9 |
public void setHorizontalSrollB arPolicy(nt policy) |
普通 |
设置水平滚动条的显示策略 |
10 |
public void setVerticalCrollBarPolicy(int policy) |
普通 |
设置垂直滚动条的显示策略 |
JDesktopPane与JInternalFrame
➢ 在Swing中也可以完成内部窗体的显示,在一个窗体中可以显示多个子窗体,每一个子窗体都无法超出父窗体的区域。
➢ JDesktopPane规定了一个父窗口的基本形式。
➢ JInternalFrame规定了各个子窗体,JInternalFrame需 要加入到JDesktopPane之中。
JDesktopPane常用方法
No. |
方法 |
类型 |
描述 |
1 |
public JDesktopPane0 |
构造 |
创建一个JDesktopPane0对象 |
2 |
public void setSelectedFrame(JInternalFrame f) |
普通 |
设置此JDesktopPane中当前活动的普通JInternalFrame |
JInternalFrame常用方法
No. |
方法 |
类型 |
描述 |
1 |
public JInteralFrame(String title) |
构造 |
创建不可调整大小的、不可关闭的、不可最大化的、不可图标化的、具有指定标题的JInternalFrame |
2 |
public JInternalFrame(String title,boolean resizable) |
构造 |
创建不可关闭的、不可最大化的、不可图标化的,以及具有指定标题和可调整大小的JInternalFrame |
3 |
public JIntemalFrame(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable) |
构造 |
创建可调整、可关闭、可最大化、可图标化的JInternalFrame |
JTextComponent的常用方法
No. |
方法 |
类型 |
描述 |
1 |
public String getTextO |
普通 |
返回文本框的所有内容 |
2 |
public String getSelectedText() |
普通 |
返回文本框中选定的内容 |
3 |
public int getSelectionStart() |
普通 |
返回文本框选定内容的开始点 |
4 |
public int getSelectionEnd() |
普通 |
返回文本框选定内容的结束点 |
5 |
public void selectAll() |
普通 |
选择此文本框的所有内容 |
6 |
public void setText(String t) |
普通 |
设置此文本框的内容 |
7 |
public void select(int selectionStart,int selectionEnd) |
普通 |
将指定开始点和结束点之间的内容选定 |
8 |
public void setEditable(boolean b) |
普通 |
设置此文本框是否可编辑 |
单行文本输入组件
➢JTextField组件可 以实现单行文本输入,此类除了使用JTextComponet类的方法外,还可以使用以下的方法
No |
方法 |
类型 |
描述 |
1 |
public JTextField() |
构造 |
构造一个默认的文本框 |
2 |
public JTextField(String text) |
构造 |
构造一个指定文本内容的文本框 |
3 |
public void setColumns(int columns) |
普通 |
设置显示长度 |
密文输入组件JPasswordField
➢ JText是 使用明文方式进行数据显示的。
➢ 如果现在需要将显示的内容设置成其他字符,则可以使用JPasswordField类,常用方法如下:
No |
方法 |
类型 |
描述 |
1 |
public JPasswordField() |
构造 |
构造默认的JPasswordField对象 |
2 |
public JPasswordField(String text) |
构造 |
构造指定内容的JPasswordField对象 |
3 |
public char getEchoChar() |
构造 |
设置回显的字符,默认为“*” |
4 |
public char getEchoChar() |
构造 |
得到回显的字符 |
5 |
public char[] getPassword() |
构造 |
得到此文本框的所有内容 |
多行文本输入组件: JTextArea
➢如果要想输入多行文本,则可以使用JTextArea实现多行文本的输入,此类扩展了JTextComponent类
No |
方法 |
类型 |
描述 |
1 |
public JTextAreaO |
构造 |
构造文本域,行数和列数为0 |
2 |
public JTextArea(int rows,int columns)构造 |
构造文本域,指定文本域的行数和列数 |
|
3 |
public JTextArea(String text,int rows,int columns) |
构造 |
指定构造文本域的内容、行数和列数 |
4 |
public void append(String str) |
普通 |
在文本域中追加内容 |
5 |
public void replaceRange(String str,int start,int end) |
普通 |
替换文本域中指定范围的内容 |
6 |
public void insert(String str,int pos) |
普通 |
在指定位置插入文本 |
7 |
public void setLineWrap(boolean wrap) |
普通 |
设置换行策略 |
事件和监听器
➢ 要想让组件发挥作用,必须对所有的组件进行事件处理。
➢ Java中使用事件表示一个对象的状态发生变化。例如当按钮按下时,实际上按钮的状态发生了变化,此时就会产生一个事件,如果要想处理此事件,就需要事件的监听者能不断的监听事件的变化,并根据这些事件进行相应的处理。
在Swing编程中,所有的事件类都是EventObject类的子类
窗体事件
➢WindowListener是专门处理窗体的事件监听接口,窗体的所有变化都可以使用这个接口进行监听。
No |
方法 |
类型 |
描述 |
1 |
void windowActivated(WindowEvent e) |
普通 |
将窗口变为活动窗口时触发 |
2 |
void windowDeactivated(WindowEvent e) |
普通 |
将窗口变为不活动窗口时触发 |
3 |
void windowClosed(WindowEvent e) |
普通 |
当窗口被关闭时触发 |
4 |
void windowClosing(WindowEvent e) |
普通 |
当窗口正在关闭时触发 |
5 |
void windowIconified(WindowEvent e) |
普通 |
窗口最小化时触发 |
6 |
void windowDeiconified(WindowEvent e) |
普通 |
窗口从最小化恢复到正常状态时触发 |
7 |
void windowOpened(WindowEvent e) |
普通 |
窗口打开时触发 |
动作事件,及监听处理
➢ 一个按钮想要让其变得有意义,就必须使用事件处理,在Swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件。
Act ionL istener接口只定义了一个方法。
No |
方法 |
类型 |
描述 |
1 |
void actionPerformed(ActionEvent e) |
普通 |
发生操作时调用 |
键盘事件及监听处理
➢ 在Swing的事 件处理中也可以使用KcyListcner接口对键盘的操作进行监听。
此接口定义了如下方法:
No |
方法 |
类型 |
描述 |
1 |
void keyTyped(KeyEvent e) |
普通 |
键入某个键时调用 |
2 |
void keyPressed(KeyEvent e) |
普通 |
键盘按下时调用 |
3 |
void keyReleased(KeyEvent e) |
普通 |
键盘松开时调用 |
如果想要取得键盘键入的内容,可以通过keyEvent取得,此类的常用方法如下:
No |
方法 |
类型 |
描述 |
1 |
public char getKeyChar() |
普通 |
返回键入的字符,只针对于keyTyped有意义 |
2 |
public int getKeyCode() |
普通 |
返回键入字符的键码 |
3 |
public static String getKeyText(int keyCode) |
普通 |
返回此键的信息,如:“HOME"、 “F1"或“A”等 |
鼠标事件及其监听
如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口
No |
方法 |
类型 |
描述 |
1 |
void mouseClicked(MouseEvent e) |
普通 |
鼠标单击时调用(按下并释放) |
2 |
void mousePressed(MouseEvent e) |
普通 |
鼠标按下时调用 |
3 |
void mouseR eleased(MouseEvent e) |
普通 |
鼠标松开时调用 |
4 |
void mouseEntered(MouseEvent e) |
普通 |
鼠标进入到组件时调用 |
5 |
void mouseExited(MouseEvent e) |
普通 |
鼠标离开组件时调用 |
MouseEvent
➢ 在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作
No |
方法及常量 |
类型 |
描述 |
1 |
public static final int BUTTON1 |
常量 |
表示鼠标左键的常量 |
2 |
public static final int BUTTON2 |
常量 |
表示鼠标滚轴的常量 |
3 |
public static final int BUTTON3 |
常量 |
表示鼠标右键的常量 |
4 |
public int getButton() |
普通 |
以数字形式返回按下的鼠标键 |
5 |
public int getClickCount() |
普通 |
返回鼠标的单击次数 |
6 |
public static String getMouseModifiersText(int modifiers) |
普通 |
以字符串形式返回鼠标按下的键信息 |
7 |
public int getX() |
普通 |
返回鼠标操作的X坐标 |
8 |
public int getY() |
普通 |
返回鼠标操作的Y坐标 |
鼠标拖拽事件及监听处理
➢ 在一般的图形界面中经常可以看到鼠标拖拽操作的情况,在Swing中可以使用MouseMotionListener接口完成鼠标的拖拽操作。
No |
方法 |
类型 |
描述 |
1 |
void mouseDragged(MouseEvent e) |
普通 |
在组件上按下并拖动时调用 |
2 |
void mouseMovedMouseEvent e) |
普通 |
鼠标移动到组件时调用 |
➢ 单选钮就是在给出的多个显示信息中指定选择一个,在Swing中使用JRadioButton完成一组单选钮的操作。
JRadioButton类的常用方法如下:
No |
方法 |
类型 |
描述 |
1 |
public JRadioButton(Icon icon) |
构造 |
建立一个单选钮, 并指定图片 |
2 |
public JRadioButton(Icon icon,boolean selected) |
构造 |
建立一个单选钮, 并指定图片和其是否选定 |
3 |
public JRadioButton(String text) |
构造 |
建立一个单选钮,并指定其文字,默认为不选定 |
4 |
public JRadioButton(String text,boolean selected) |
构造 |
建立一个单选钮, 并指定文字和其是否选定 |
5 |
public JRadioButton(String text,Icon icon,boolean selected) |
构造 |
建立一个单选钮,并指定图片,文字和其是否选定 |
6 |
public void setSelected(boolean b) |
普通 |
设置是否选中 |
7 |
public boolean isSelected() |
普通 |
返回是否被选中 |
8 |
public void setText(String text) |
普通 |
设置显示文本 |
9 |
public void setIcon(Icon defaultIcon) |
普通 |
设置图片 |
➢ 单选按钮操作中,使用ItemListener接口进行事件的监听,接口定义如下的方法
No |
方法 |
类型 |
描述 |
1 |
void itemStateChanged(ItemEvent e) |
普通 |
当用户取消或选定某个选项时调用 |
此方法中存在ItemEvent事件,此事件常用方法及常量如下所示
No |
方法 |
类型 |
描述 |
1 |
public static final int SELECTED |
常量 |
选项被选中 |
2 |
public static final int DESELECTED |
常量 |
选项未被选中 |
3 |
public Object ge tItem() |
普通 |
返回受事件影响的选项 |
4 |
public int getStateChange() |
普通 |
返回选定状态的类型(己选择或己取消) |
JCheckBox
程序可以通过JCheckBox实现复选框功能,
No |
方法 |
类型 |
描述 |
1 |
public JCheck Box(Icon icon) |
构造 |
创建一个带图标的对象,但不选定 |
2 |
public JCheck Box(Icon icon,boolean selected) |
构造 |
创建一个带图标的对象,并指定其是否选定 |
3 |
public JCheckBox(String text) |
构造 |
创建一个带文本的对象,但不选定 |
4 |
public JCheck Box(String text,boolean selected) |
构造 |
创建一个带文本的对象,并指定其是否选定 |
5 |
public JCheckBox(String text,Icon icon,boolean selected) |
构造 |
创建一个带文本和图标的对象,并指定是否被选定 |
No |
方法 |
类型 |
描述 |
1 |
public JMenuBar() |
构造 |
创建新的JMenuBar对象 |
2 |
public JMenu add(Menu c) |
普通 |
将指定的JIMenu加入到JMenuBar之中 |
3 |
public JMenu getMenu(int index) |
普通 |
返回指定位置的菜单 |
4 |
public int getMenuCount() |
普通 |
返回菜单栏上的菜单数 |
No |
方法 |
类型 |
描述 |
1 |
public JMenu(String s) |
构造 |
创建新的JMenu,并指定菜单名称: |
2 |
public JMenuItem add(JMenuItem menuItem) |
普通 |
增加新的菜单项 |
3 |
public void addSeparator() |
普通 |
加入分隔线 |
No |
方法 |
类型 |
描述 |
1 |
public JMenuItem(Icon icon) |
构造 |
创建带有图标的JMenultem |
2 |
public JMenuItem(String text) |
构造 |
创建带有指定文本的JMenuItem |
3 |
public JM enuItem(String text,Icon icon) |
构造 |
创建带有指定文本带图标的JMenultem |
4 |
public JMenuItem(String text, int mnemonic) |
构造 |
创建带有指定文本的JMenuItem,并指定助记符 |
5 |
public void setMnemonic(int mnemonic)普通 |
指定菜单项的助记符 |
|
6 |
public void setAccelerator(KeyStroke keyStroke) |
普通 |
设置快捷键的组合键 |
JFileChooser常用方法
No |
方法 |
类型 |
描述 |
1 |
public JFileChooser() |
构造 |
指向用户默认的目录,在windows中 是“我的文档”在Unix上是用户的主目录 |
2 |
public JFileChooser(String currentDirectoryPath) |
构造 |
指定文件选择的目录 |
3 |
public File getSelectedFile() |
普通 |
返回选择的文件 |
4 |
public int showSaveDialog(Component parent) throws HeadlessException |
普通 |
打开保存对话框,返回保存状态 |
5 |
public int showOpenDialog(Component parent) throws Headless Exception |
普通 |
打开文件选择对话框, 返回打开状态 |
6 |
public void setDialogTitle(String dialogTitle) |
普通 |
设置文件选择框的标题 |
7 |
public void setApproveButtonText(String approveButtonText) |
普通 |
设置文件选择的接收按钮内容 |