当前位置: 代码迷 >> J2SE >> swing开发中,哪种最有效率和美观的事件处理,该如何解决
  详细解决方案

swing开发中,哪种最有效率和美观的事件处理,该如何解决

热度:17   发布时间:2016-04-24 00:56:34.0
swing开发中,哪种最有效率和美观的事件处理
请教一下各路高手,在java中事件的处理一下三种哪种最好,还是有更好的?

Java code
import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;public class Demo1 extends JFrame implements ActionListener {        JButton btn  = new JButton("方法 1");    JButton btn2 = new JButton("方法 2");    JButton btn3 = new JButton("方法 3");    Cat cat = new Cat();    public static void main(String[] args)     {        Demo1 d1 = new Demo1();    }    public Demo1()    {        //方法1        this.btn.addActionListener(this);        //方法2        this.btn2.addActionListener(                            new ActionListener()                            {                                public void actionPerformed(ActionEvent e)                                 {                                        JOptionPane.showInputDialog("Btn2");                                }                            }                            );        //方法3                this.btn3.addActionListener(this.cat);                                this.setLayout(new FlowLayout(FlowLayout.LEFT));                this.getContentPane().add(this.btn);                this.getContentPane().add(this.btn2);                this.getContentPane().add(this.btn3);                                this.setVisible(true);                this.setSize(320,200);                this.setLocation(500,300);                this.setDefaultCloseOperation(EXIT_ON_CLOSE);    }    public void actionPerformed(ActionEvent e) {        if(e.getSource() == btn)        {            JOptionPane.showConfirmDialog(this, "Btn");        }    }} class Cat implements ActionListener{    public void actionPerformed(ActionEvent e)    {        JOptionPane.showInputDialog("Btn3");    }}

请教一下各路高手,在java中事件的处理一下三种哪种最好,还是有更好的?

------解决方案--------------------
提供给你多种方式,谈不上哪种最好,如果哪种是最好的,那其它方式不就多余了?

就跟循环一样,Java不也提供了很多种循环的语句?

就我个人理解:
方法1:适用于复杂度中等场合,且能较为方便的与主类共享各种成员变量,但会增加类的复杂度;
方法2:适用于非常简单的事件处理,那么为了方便起见,就直接用匿名类方式搞定了;
方法3:适用于存在共享需求或者处理规则较为复杂的场合,单独拆分开来避免单个类复杂度过高。
------解决方案--------------------
探讨

引用:

使用 javax.swing.Action / javax.swing.AbstractAction .

你好,可以举个例子吗?