1.接口
接口的定义
定义接口的关键字是:interface
格式:
public interface 接口名 extends 接口,... {
//常量
public static final 数据类型 常量名 = 值;
//抽象方法
public abstract 返回值类型 方法名(数据类型 参数名,...);
}
注意:
1.接口中只有一个访问修饰符public 。
2.接口默认会提供static,final,abstract关键字。
3.接口可以继承一个或者多个接口。
4.接口不能创建对象。
5.接口也是一种类
接口的实现
实现接口的关键字: implements
格式:
public class 类名 extends 类或抽象类 implements 接口,... {
//类必须要实现接口中所有的抽象方法。
}
注意:
1.类必须要实现接口中所有的抽象方法。
2.类实现接口,就是继承接口
2.抽象类
定义抽象类的关键字:abstract class
public abstract class 抽象类名 extends 类或抽象类 implements 接口,... {
//类中能定义的,抽象类都可以定义。
//还可以定义抽象方法
}
3.事件
实例化:
(1)你在房间A,如果想知道房间B有什么事情发生,可以在房间B装监控,房间A有程序可以看到房间B的情况。
这其中:
事件源:B房间
事件监听器方法:摄像头
事件接口(事件处理类):程序
(2)你点击登录按钮,要弹出一个绘图界面。
事件源:登录按钮
(PS:事件源:动作发生在哪一个组件上,那么该组件就是事件源。)
事件监听器方法
监听器相应动作的方法
addActionListener(ActionListener l);按钮组件上的鼠标点击,输入框组件上的回车操作
addMosueListener(MouseListener l);组件上发生鼠标进入,离开,按下,释放,单击操作
addKeyListener(KeyListener l);组件上按下,释放或敲击按键
事件接口(事件处理类)
定义类实现相应的接口
ActionListener
MouseListener
KeyListener
事件的执行流程:
当你在事件源发生一个动作后,监听器方法会监听(捕获)到这个动作,会将动作以及事件源对象交给监听器方法中的参数对象进行处理;参数对象会根据动作调用不同的事件处理方法,执行相应的代码
4.编程练习
实现登录界面上相应的事件。
首先定义Login类,实现登陆界面
用到的组件
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
首先定义界面的基本属性:标题、大小、位置、关闭操作、禁止改变界面大小等。界面采用默认边框布局(不需再定义布局),由北边、西边、中间三部分组成。北边创建了一个标签,添加一张图片。西边创建一块面板,通过setPreferredSize(new Dimension(120,0))的方法确定面板的大小以便更好得控制图片的位置。中间部分也插入一块面板,面板采用流式布局,添加文本框、密码框、勾选框、按钮等组件。注意最后设置窗体可见。
[img]http://dl2.iteye.com/upload/attachment/0109/1904/1a9739f6-a0ed-3358-8392-fa8f15019112.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0109/1906/8e0c9fb0-067f-3b60-8cb5-d8b74377e115.png[/img]
要实现界面的登陆功能,则应给事件源按钮加监听,创建LoginListener类,同时将文本框与密码框传给监听类。如果文本与密码满足一定条件,则新建绘图界面,同时关闭原来的登陆界面,因此也应将登陆界面传到监听类。
以下是新定义的监听类,实现了ActionListener借口,同时注意实现接口中的抽象方法:public void actionPerformed(ActionEvent e){}。(抽象方法可以将鼠标点在接口名上按F3c查看)
[img]http://dl2.iteye.com/upload/attachment/0109/1902/715bb45e-ee4b-3f9a-b72b-0b1fbb8c8347.png[/img]
接口的定义
定义接口的关键字是:interface
格式:
public interface 接口名 extends 接口,... {
//常量
public static final 数据类型 常量名 = 值;
//抽象方法
public abstract 返回值类型 方法名(数据类型 参数名,...);
}
注意:
1.接口中只有一个访问修饰符public 。
2.接口默认会提供static,final,abstract关键字。
3.接口可以继承一个或者多个接口。
4.接口不能创建对象。
5.接口也是一种类
接口的实现
实现接口的关键字: implements
格式:
public class 类名 extends 类或抽象类 implements 接口,... {
//类必须要实现接口中所有的抽象方法。
}
注意:
1.类必须要实现接口中所有的抽象方法。
2.类实现接口,就是继承接口
2.抽象类
定义抽象类的关键字:abstract class
public abstract class 抽象类名 extends 类或抽象类 implements 接口,... {
//类中能定义的,抽象类都可以定义。
//还可以定义抽象方法
}
3.事件
实例化:
(1)你在房间A,如果想知道房间B有什么事情发生,可以在房间B装监控,房间A有程序可以看到房间B的情况。
这其中:
事件源:B房间
事件监听器方法:摄像头
事件接口(事件处理类):程序
(2)你点击登录按钮,要弹出一个绘图界面。
事件源:登录按钮
(PS:事件源:动作发生在哪一个组件上,那么该组件就是事件源。)
事件监听器方法
监听器相应动作的方法
addActionListener(ActionListener l);按钮组件上的鼠标点击,输入框组件上的回车操作
addMosueListener(MouseListener l);组件上发生鼠标进入,离开,按下,释放,单击操作
addKeyListener(KeyListener l);组件上按下,释放或敲击按键
事件接口(事件处理类)
定义类实现相应的接口
ActionListener
MouseListener
KeyListener
事件的执行流程:
当你在事件源发生一个动作后,监听器方法会监听(捕获)到这个动作,会将动作以及事件源对象交给监听器方法中的参数对象进行处理;参数对象会根据动作调用不同的事件处理方法,执行相应的代码
4.编程练习
实现登录界面上相应的事件。
首先定义Login类,实现登陆界面
用到的组件
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
首先定义界面的基本属性:标题、大小、位置、关闭操作、禁止改变界面大小等。界面采用默认边框布局(不需再定义布局),由北边、西边、中间三部分组成。北边创建了一个标签,添加一张图片。西边创建一块面板,通过setPreferredSize(new Dimension(120,0))的方法确定面板的大小以便更好得控制图片的位置。中间部分也插入一块面板,面板采用流式布局,添加文本框、密码框、勾选框、按钮等组件。注意最后设置窗体可见。
[img]http://dl2.iteye.com/upload/attachment/0109/1904/1a9739f6-a0ed-3358-8392-fa8f15019112.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0109/1906/8e0c9fb0-067f-3b60-8cb5-d8b74377e115.png[/img]
要实现界面的登陆功能,则应给事件源按钮加监听,创建LoginListener类,同时将文本框与密码框传给监听类。如果文本与密码满足一定条件,则新建绘图界面,同时关闭原来的登陆界面,因此也应将登陆界面传到监听类。
以下是新定义的监听类,实现了ActionListener借口,同时注意实现接口中的抽象方法:public void actionPerformed(ActionEvent e){}。(抽象方法可以将鼠标点在接口名上按F3c查看)
[img]http://dl2.iteye.com/upload/attachment/0109/1902/715bb45e-ee4b-3f9a-b72b-0b1fbb8c8347.png[/img]