如何只用一个事件听我的所有组件?

时间:2016-03-27 23:18:17

标签: java swing jbutton mouselistener

这是问题所在, 我有3个文本字段,3个按钮和1个标签。他们的文字是text1,text2 text3,but1,but2,but3。

我举一个关于我想做什么的例子;当我双击按钮时,按钮会将标签的文本更改为按钮的文本。我的意思是当我双击到but2时,标签的文字应该是but2。

我可以使用该代码执行此操作;

        MouseAdapter ml = new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                if (me.getClickCount()==2) {

                 jLabel1.setText(jButton1.getText);

                }
            }
        };
        jButton1.addMouseListener(ml);

所以它可以工作,但它只适用于jButton1。我必须为所有组件(文本字段和jbuttons)编写不同的mouseListener。我怎么能用一个听众做到这一点?还是一件事?你有什么想法吗?

1 个答案:

答案 0 :(得分:3)

看看MouseEvent#getSource ...但是,老实说,如果您使用JButton,则不应使用MouseListener,而是{{1}而是。另外,一般来说,大多数用户不会双击ActionListener因为它们不直观,按钮只需要点击一下即可激活

请记住,按键也可以通过键盘激活,JButton不会被通知