如何将ActionListener添加到Java中的JButton中

private JButton jBtnDrawCircle = new JButton("Circle"); private JButton jBtnDrawSquare = new JButton("Square"); private JButton jBtnDrawTriangle = new JButton("Triangle"); private JButton jBtnSelection = new JButton("Selection"); 

如何将动作监听器添加到这些button,以便从主方法我可以调用操作actionperformed对他们,所以当他们被点击时,我可以在我的程序中调用他们?

两种方式:

1.在你的类中实现ActionListener,然后使用jBtnSelection.addActionListener(this); 稍后,您将不得不定义一个menthod, public void actionPerformed(ActionEvent e) 。 但是,为多个button执行此操作可能会造成混淆,因为actionPerformed方法将不得不检查每个事件的来源( e.getSource() )以查看它来自哪个button。

2.使用匿名内部类:

 jBtnSelection.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { selectionButtonPressed(); } } ); 

稍后,您将不得不定义selectionButtonPressed() 。 当你有多个button的时候,这个效果会更好,因为你调用单独的方法来处理这些动作就在这个button的定义旁边。

第二种方法也允许你直接调用select方法。 在这种情况下,如果发生其他一些动作,也可以调用selectionButtonPressed() ,比如当一个计时器closures时(或者在这种情况下,你的方法会被命名为不同的,也许是selectionChanged() )。

您最好的select是查看Java Swing教程 ,特别是button教程 。

短代码片段是:

 jBtnDrawCircle.addActionListener( /*class that implements ActionListener*/ ); 

我没有完全遵循,但添加一个动作侦听器,你只需调用addActionListener (从抽象button)。 如果这不能完全回答你的问题,你能提供一些更多的细节吗?