1.接口
其实就是一种特殊类{
属性:只能是常量final
方法:抽象方法 abstract
}
public final int N = 10;
public abstract void study();
}
注意
1.接口不能实例化对象。
2.抽象方法必须要以分号结束。
3.常量名的每一个字母必须要大写。
4. 接口中只能定义常量和抽象方法。
5.接口不能继承类,但是可以继承一个或者多个接口。
比如机器人即继承人和机器
2.定义接口
关键字:interface
格式
public interface 接口名{
属性:常量
方法:抽象方法
}
3.接口的使用
接口不能直接实例化对象,使用另外一个类来实现接口。
关键字:implements(实现)---(继承)
格式:
public class 类名 implements 接口,...{
实现所有的接口中所有的方法,重写
public void study(){
System.out.println("学习方法");
}
定义自己的属性和方法
}
注意:
1. <!--[endif]-->接口不能直接实例化对象
2. <!--[endif]-->实现接口的对象必须将接口中的抽象方法全部重写
事件机制
当组件上发生动作时程序作出相应的反应
1.事件源
动作发生的组件即事件源
注:既然是组件 则只有所有图形界面组件对象(swing 和 awt)才可能是事件源
如 CheckBox ComboBox TextField PasswordField Button……等组件
2.事件监听器
当事件发生的时候要能够察觉则要使用事件监听器
常用事件监听器:
动作监听器方法
addActionListener(ActionListener al);
鼠标监听器方法
addMouseListener(MouseListener ml);
鼠标移动监听器方法
addMouseMotionListener(MouseMotionListener mml);
键盘监听器方法
addKeyListener(KeyListener kl);
3.事件处理类
当监听器得到命令时由事件处理类来执行相应的反应
前面的事件监听器都是接口 则要事件处理类就是要实现他们
一个简单的例子
1.界面
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
public class Test {
public static void main(String args[]){
//建一个对象
Test at=new Test();
//调用方法名
at.jf();
}
public void jf(){
//创建一个窗体
javax.swing.JFrame jf =new javax.swing.JFrame();
jf.setSize(200,200);
jf.setTitle("简单例子");
jf.setLocation(40, 30);
jf.setDefaultCloseOperation(3);
jf.setLayout(null);
//设置按钮
javax.swing.JButton btn=new javax.swing.JButton("输出明文");
btn.setBounds(80, 35, 80,30);
jf.add(btn);
//密码输入框
javax.swing.JPasswordField passf=new javax.swing.JPasswordField();
passf.setBounds(0, 0, 200, 30);
jf.add(passf);
//创建监听器对象
ActionListener al = new MyListener(passf);
//把监听器添加到事件源上
btn.addActionListener(al);
//显示界面
userinterface.setVisible(true);
}
2.事件处理类
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPasswordField;
public class MyListener implements ActionListener{
private JPasswordField jpf;
public MyListener(JPasswordField jpf){
this.jpf = jpf;
}
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e){
System.out.println(jpf.getPassword());
}
}
这样 一个输入在密码框里的密文就被输出其明文了