操作の列挙を定義:
enum Operation {
PLUS {
@Override int operate(int a, int b) { return a + b; }
},
MINUS {
@Override int operate(int a, int b) { return a - b; }
},
// etc, for others.
;
abstract int operate(int a, int b);
}
そしてパラメータとしてOperation
かかりActionListener
サブクラス定義:次に、このクラスのインスタンスを追加
class MyActionListener implements ActionListener {
final Operation operation;
MyActionListener(Operation operation) {
this.operation = operation;
}
@Override public void actionPerformed(ActionEvent evt) {
int a = Integer.parseInt(n1.getText());
int b = Integer.parseInt(n2.getText());
int result = operation.operate(a, b);
JOptionPane.showMessageDialog(null, result);
}
}
を各ボタンへのイベントリスナー:
jButton1.addActionListener(new MyActionListener(Operation.PLUS));
jButton2.addActionListener(new MyActionListener(Operation.MINUS));
抽象クラスを作成し、継承を使用します。または、クラスを作成して構図を使用します。または、オブザーバーパターンを使用します。またはデコレータパターン。または戦略パターン(ああ、構図を待つ)。多くの選択肢。私のアドバイス。構成と戦略パターンを調べる。それはヘッドの最初のデザインパターンの本で詳細かつシンプルに書かれています。私の電話に例を書くことはできません。ごめんなさい – Randy