您好我有這個類實現一個JTextField:如何一個ActionListener添加到這個類實現了JTextField
其中也應該有一個addActoinListener方法,這我不知道該怎麼寫......
package gui;
import gui.control.ExpressionListener;
import gui.control.NewListener;
import javax.swing.JTextField;
public final class ExpressionView
extends JTextField {
public String text;
public static final long serialVersionUID = 1L;
public static final ExpressionView instance = new ExpressionView();
private ExpressionView() {
super("ExpressionView");
// This is a singleton.
}
@Override
private void addActionListener {
ExpressionView.addActionListener(ExpressionListener.instance);
}
}
哪一種執行該操作的ExpressionListener類看起來是這樣的:
package gui.control;
import gui.ExpressionView;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Scanner;
import spreadsheet.Application;
import spreadsheet.Expression;
import spreadsheet.exception.NoSuchSpreadsheetException;
import ui.ExpressionInterpreter;
import ui.exception.IllegalStartOfExpression;
import ui.exception.InvalidExpression;
import ui.exception.InvalidPositionException;
public final class ExpressionListener
implements ActionListener {
public static final ExpressionListener instance = new ExpressionListener();
private ExpressionListener() {
// This is a singleton.
}
@Override
public void actionPerformed(ActionEvent event) {
try {
Scanner scanner = new Scanner(ExpressionView.instance.getText());
Expression expression = ExpressionInterpreter.interpret(scanner);
Application.instance.set(expression);
} catch (InvalidPositionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchSpreadsheetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStartOfExpression e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidExpression e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
所以,請你幫助我,告訴我怎麼這樣的ActionListener添加到ExpressionView類? :)
我無法抗拒事實問「你爲什麼使用單身模式」?這種模式在不適當的情況下經常使用,應該主要避免。它總是消除靈活性,使進化更難。 –