私は現在、押されると配列の要素をその値で更新し、その要素を含むフレームを閉じた一連のボタンを持っています。多くのボタンが似たような作業をします - actionPerformedを単純化する方法はありますか?
現在、彼らの行動は、次のように述べられている:
...
svwnb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
input[5] = svwnb.getText();
dftframe.setVisible(false);
}
});
blypb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
input[5] = blypb.getText();
dftframe.setVisible(false);
}
});
pw91b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
input[5] = pw91b.getText();
dftframe.setVisible(false);
}
});
b97db.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
input[5] = b97db.getText();
dftframe.setVisible(false);
}
});
pbepbesolb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
input[5] = pbepbesolb.getText();
dftframe.setVisible(false);
}
});
...
簡単な方法にこれを簡素化する方法はありますか?私はgetSource()
メソッドを使用する必要があると感じていますが、このようなアクションメソッドを構築する経験はありません。私はこのコードを生成する方法を正確に知らない
public void actionPerformed(ActionEvent e){
input[5] = e.getSource().getText();
dftframe.setVisible(false);
}
:
より簡潔にするために、私は、コードは次の擬似コードのようになりますという考えを持っています。
@AndrewThompson Yep。それは醜いです。私は、質問者が自分のクラスにActionListener型の(プライベート)フィールドを定義できると言っていました。私はそれを編集します。ありがとうございました。 – MockerTim
ありがとう、これは完全に働いた。非常に高く評価しました – user1147964
@MockerTimご清聴ありがとうございます。良い編集、優れた答え。 :) –