I have a static variable partner in the class. And I want to set a value of these variable whenever a radio button is pressed. This is the code I tried to use:
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);
}
The problem here is that the actionPerformed does not see the variable playerName created in the loop. How can I pass this variable to the actionListener?
Local variables passed to inner classes must be final. Originally I thought that you cannot make
playerNamefinal in the for loop, but in fact you can. If that wasn’t the case, you would simply storeplayerNamein additional final variable (final String pn = playerName) and usedpnfromactionPerformed.