事件驱动程序,意思便是捕捉到某些预定想要的事件程序做出响应。在java中最常见的便是监听器的应用了。
监听器的声明:
1)通过接口继承,注意,当继承了接口,其内部的所有抽象方法都需要实现:
1 class ButtonListener implements ActionListener{ 2 3 @Override 4 public void actionPerformed(ActionEvent e) { 5 // TODO Auto-generated method stub 6 7 } 8 9 }
2)匿名类监听:
1 (new JButton("test")).addActionListener( 2 new ActionListener(){ 3 public void actionPerformed(ActionEvent e){ 4 5 } 6 } 7 );
监听器的注册:component.addXXListener();
有时候我们只关注监听事件中的某些动作,例如:点击鼠标,但是默认的鼠标事件包含多类,有监听按下、松开等,这时候就可以使用便利适配器 EventAdapter(), 默认实现了所有的监听响应,这时我们只需要去覆盖重写我们所想要的内容即可。通常名字对应为xxListener -- xxAdapter;
1 public class AdapterTest { 2 public static void main(String[] args){ 3 JFrame jf = new JFrame(); 4 JButton jb = new JButton("test"); 5 jb.addMouseListener(new MouseAdapter(){ 6 7 public void mouseClicked(MouseEvent e){ 8 System.out.println("really click it"); 9 } 10 11 }); 12 jf.add(jb); 13 jf.setTitle("test"); 14 jf.setSize(280,100); 15 jf.setLocationRelativeTo(null); 16 jf.setVisible(true); 17 } 18 }
关于内部类:
- 对于非静态的内部类,可使用外部的变量方法;
- 对于静态的内部类,不允许访问非静态的变量或方法;
- 对于内部类,加上private后无法被使用,会出现编译错误;
时间: 2024-10-07 05:50:33