[英]How to add an actionListener as a separate class in java
我一直在开发一个程序,而我的主类和大量代码都具有20多种不同的“ addActionListener”方法。 我该如何在单独的类中创建此actionListener,itemStateChanged等,但仍按现在的方式执行。 任何提示都将受到欢迎,因为我已经在此类中运行了4000行以上的代码:(谢谢!
public class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent evt) {
// actionPerformed here...
}
}
您将使用它像:
JButton button = new JButton();
button.addActionListener(new MyActionListener());
// OR
MyActionListener listener = new MyActionListener();
JButton button = new JButton();
button.addActionListener(listener);
class Mylistener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e){
if (e.getSource() == someButton){
// do something
} else if (e.getSource() == someOtherButton){
// do something
}
// add more else if statements for other components
// e.getSource() is the component that fires the event e.g. someButton
}
}
假设您有两个按钮
JButton someButton = new JButton("SOME BUTTON");
JButton someOtherButton = new JButtton("SOME OTHER BUTTON");
ActionListener listener = new MyListener();
someButton.addActionListener(listener);
someOtherButton.addActionListener(listener);
编辑:
public MyClass extends JFrame {
JButton someButton = new JButton("SOME BUTTON");
JButton someOtherButton = new JButtton("SOME OTHER BUTTON");
public MyClass(){
ActionListener listener = new MyListener();
someButton.addActionListener(listener);
someOtherButton.addActionListener(listener);
}
class Mylistener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e){
if (e.getSource() == someButton){
// do something
} else if (e.getSource() == someOtherButton){
// do something
}
// add more else if statements for other components
// e.getSource() is the component that fires the event e.g. someButton
}
}
您想编写一个实现ActionListener的类。 我可以在这里给您一些代码,而无需太多解释,但我认为最好将您的文档指向此处: http : //docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
该链接将为您提供一些示例,并将详细说明其工作方式。 我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.