どのように私はアクションリスナーに変数を与えることができますか?
-
21-09-2019 - |
質問
私はクラスの静的変数のpartner
を持っています。そして、私はラジオボタンが押されたときは、これらの変数の値を設定します。これは私が使用しようとしたコードです。
for (String playerName: players) {
option = new JRadioButton(playerName, false);
option.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
partner = playerName;
}
});
partnerSelectionPanel.add(option);
group.add(option);
}
ここでの問題は、actionPerformed
がループで作成した変数のplayerName
を見ていないということです。どのように私はのactionListenerに、この変数を渡すことができますか?
解決
for (final String playerName: players) {
option = new JRadioButton(playerName, false);
option.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
partner = playerName;
}
});
partnerSelectionPanel.add(option);
group.add(option);
}
内部クラスに渡されたローカル変数は、最終的にする必要があります。もともと私はあなたのforループでplayerName
決勝を行うことができないと思ったが、実際には次のことができます。それはそうではなかった場合は、単に追加の最終変数(playerName
)とfinal String pn = playerName
からの使用pn
でactionPerformed
を格納します。
他のヒント
変数でなければなりませんの内部クラスにそれを通過する最終的なの
JButton button = new JButton("test");
button.addActionListiner(new ActionForButton("test1","test2"));
class ActionForButton implements ActionListener {
String arg,arg2;
ActionFroButton(String a,String b) {
arg = a; arg2 = b;
}
@Override
public void actionPerformed(ActionEvent e) {
Sustem.out.println(arg + "--" + arg2);
}
}
所属していません StackOverflow