JAVA事件1

来源:互联网 发布:淘宝售前客服岗位职责 编辑:程序博客网 时间:2024/06/05 04:47
事件:
  • 监听机制
比如:保镖保护富豪,富豪是事件源;保镖监听富豪的安全状况。保镖和富豪的协议称为注册。
  • 事件开发步骤:
1.确定事件源,
2.确定监听器
3.注册,建立事件源和监听器的联系。

public class MyJFrame extends JFrame implements ActionListener{
     private  Mytext nametxt = new Mytext("姓名",200 ,30 , this);//不能使用局部变量


     public MyJFrame(){

           MyButton m = new MyButton(50,30,"提交",this);
           this.add(m);

           //方法1,在其他类注册一个事件,该事件的触发行为在MyEvent中的perform中被定义
           m.addActionListener(new MyEvent());

           //方法2,在本类写一个事件,不适合多个事件
           MyButton m1 = new MyButton(50,60,"确定",this);
           m1.addActionListener(this);

           //方法3,
           MyButton m3 = new MyButton(50,90,"添加",this);
           m3.addActionListener(new ActionListener(){

                @Override
                public void actionPerformed(ActionEvent e) {
                     // TODO 自动生成的方法存根
                     System.out.println("第三种方法,匿名内部类,也是匿名实现类");
                     String txt = nametxt.getText();
                     System.out.println(txt);
                }});

           this.setTitle("事件");
           this.setLayout(null);
           this.setSize(400, 300);
           this.setVisible(true);
           this.setLocationRelativeTo(null);
           this.setDefaultCloseOperation(3);
           this.setResizable(false);
     }
     public static void main(String[] args) {
           // TODO 自动生成的方法存根
           MyJFrame jf = new MyJFrame();
     }
     public void actionPerformed(ActionEvent s){
           System.out.println("方法2,在本类写一个perform方法,不适合多个事件");
     }
}

  • 事件不能访问局部变量,所以不能在构造方法里声明一个含修饰符的变量
  • 事件里面,可以直接在外部声明一个number来控制事件的发生次数
  • 内部类访问外部类对象:外部类名.this.方法
mb.addActionListener(new ActionListener(){

                @Override
                public void actionPerformed(ActionEvent e) {
                     // TODO 自动生成的方法存根
                     String strnametxt = nametxt.getText();
                     String strpwdtxt = pwdtxt.getText();

                     if("456".equals(strnametxt)&&"123".equals(strpwdtxt)){

                           JOptionPane.showMessageDialog(null, "登陆成功");
                           Mylogin.this.dispose();//匿名内部类调用外部类不能直接用this,要用外部类.this
                           new MyJFrame();

0 0
原创粉丝点击