如何将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)。 如果这不能完全回答你的问题,你能提供一些更多的细节吗?