我最近在做一个编程任务,要求我们在代码中实现一个由UML图指定的程序。在某一点上,图表指定我必须创建一个匿名JButton,它显示一个计数(从一开始),并在每次点击时递减。 JButton和它的ActionListener都必须是匿名的。实现ActionListener的Java匿名类?
我想出了以下解决方案:
public static void main(String[] args) {
JFrame f = new JFrame("frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 400);
f.getContentPane().add(new JButton() {
public int counter;
{
this.counter = 1;
this.setBackground(Color.ORANGE);
this.setText(this.counter + "");
this.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
counter --;
setText(counter + "");
}
});
}
});
f.setVisible(true);
}
这增加了一个匿名的JButton,然后再添加(内部)匿名的ActionListener处理事件和按钮的文本在必要时更新。有更好的解决方案吗?我很确定我不能声明匿名JButton implements ActionListener()
,但是有没有另一种更优雅的方式来达到相同的结果?
看一下你现在@Tim – Insane 2016-07-09 07:59:43