多个Swing Applet actionlistener java

时间:2014-10-26 22:55:42

标签: java swing applet

有没有办法让所有这些actionlisteners成为一个声明?

    jbtn0.addActionListener(this);
    jbtn1.addActionListener(this);
    jbtn2.addActionListener(this);
    jbtn3.addActionListener(this);
    jbtn4.addActionListener(this);
    jbtn5.addActionListener(this);
    jbtn6.addActionListener(this);
    jbtn7.addActionListener(this);
    jbtn8.addActionListener(this);
    jbtn9.addActionListener(this);
    jbtnAdd.addActionListener(this);


    jfrm.add(jbtn0);
    jfrm.add(jbtn1);
    jfrm.add(jbtn2);
    jfrm.add(jbtn3);
    jfrm.add(jbtn4);
    jfrm.add(jbtn5);
    jfrm.add(jbtn6);
    jfrm.add(jbtn7);
    jfrm.add(jbtn8);
    jfrm.add(jbtn9);

我对java很新,我正在使用eclipse。

2 个答案:

答案 0 :(得分:4)

是的,在某种程度上。我有时会这样做:

for(JButton btn : new JButton[] {
    jbtn0, jbtn1, jbtn2, ... , jbtn9
}) {
    jbtn.addActionListener(this);
    jfrm.add(jbtn);
}

即使我的组件没有从数组中开始,我也这样做,例如,如果我填充JToolBar并且需要在其他地方按名称引用组件。

根据您的命名方案判断,从一开始就使用数组也可能是有利的。

答案 1 :(得分:-1)

正如pzaenger在他的评论中所说,你可以将所有按钮添加到ArrayList或数组中,然后只需遍历所有条目并为每个条目添加一个actionlistener。