[英]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.