【发布时间】:2012-10-30 08:07:03
【问题描述】:
我有一个简单的 GUI,其中包含:
- 一个按钮。
- 两个单选按钮
现在我想听听这些按钮中的每一个。我所做的是这样的:
public class TestApp implements ActionListener {
private JFrame frame;
private JButton btn;
private JRadioButton rdb1;
private JRadioButton rdb2;
public static void main(String[] args) { /*....*/ }
private void initialize() {
//Each time I add a button, I add it to the listener:
btn = new JButton("Button");
btn.addActionListener(this);
//..
rdb1 = new JRadioButton("Value1");
rdb1.addActionListener(this);
//And so on...
}
//The ActionEvents
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btn)
//...
if(e.getSource()==rdb1)
//...
}
}
现在我想知道这种风格是好还是坏?
【问题讨论】:
-
什么都没有,我想知道它是坏还是好。
-
通过让你的主要公共类实现
ActionListener来暴露你的ActionListener是不好的风格。最好切换到内部类或匿名类 -
我只是想知道...你为什么要把你的生活复杂化?简单地说,使用匿名类。
-
我对匿名类不是很熟悉,我会阅读它,我会知道它有什么优点:) 谢谢
-
+1 一个好问题。我见过一些机构要求学生只使用 1 个监听器来处理多个完全不同性质的按钮。我很惊讶学校会这样做,因为我总是认为这种事件处理方式是一种非常糟糕的习惯。
标签: java swing coding-style inner-classes anonymous-class