MVC を使用して基本的な電卓を作成しています。これまでのところ、ユーザーが入力した 2 つの値を合計するだけのチュートリアルを採用しています。
現在、ビューに追加している各ボタンには独自のリスナーがありますが、これで問題ありません。ただし、チュートリアルのコントローラーには、ボタンごとに 1 つの ActionListener 内部クラスがあります。これにより、膨大な量のコードが繰り返されます。
押されたすべてのボタンに対して単一の ActionListener クラスを作成し、押されたボタンの ID で case ステートメントを使用するにはどうすればよいですか?
ビューに oneButton を登録する
void oneListener(ActionListener listenForOneButton){
oneButton.addActionListener(listenForOneButton);
}
Controller 内部クラスで oneButton の ActionListener を実装する
class oneListener implements ActionListener{
public void actionPerformed(ActionEvent e){
int previousNumber, displayNumber = 0;
try{
previousNumber = theView.getPreviousDisplayNumber();
displayNumber = previousNumber+1;
theView.setDisplayNumber(displayNumber);
}
catch(NumberFormatException ex){
System.out.println(ex);
theView.displayErrorMessage("You Need to Enter Integers");
}
}
}