Я не группировал свои jradiobuttons, чтобы пользователи могли выбирать несколько вариантов, и я могу хранить их в массиве узлов ... но он только читает один раз. Что не так с кодом? Пожалуйста, просветить меняПочему мой jradiobutton принимает только один раз?
private String[] showGUIForNodeDeletion() {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(map.size(), 1));
ButtonGroup btnGrp = new ButtonGroup();
final String nodes[] = new String[10];
Set<String> keySet = map.keySet();
for (String name : keySet) {
btnRadio = new JRadioButton(name);
btnRadio.setActionCommand(map.get(name).x + "," + map.get(name).y + "," + name);
//btnGrp.add(btnRadio);
panel.add(btnRadio);
}
btnRadio.addActionListener(new ActionListener() {
int x = 0;
public void actionPerformed(ActionEvent e) {
nodes[x] = ((JRadioButton) e.getSource()).getActionCommand();
System.out.println("Node counting " + x);
x++;
}
});
if (keySet.isEmpty()) {
JOptionPane.showMessageDialog(AnotherGuiSample.this, "Work Space is empty", "Error", JOptionPane.ERROR_MESSAGE);
} else {
JOptionPane.showMessageDialog(AnotherGuiSample.this, panel, "Select node to remove", JOptionPane.INFORMATION_MESSAGE);
}
for(int x = 0; x < nodes.length; x++)
System.out.println("node is " + nodes[x]);
return nodes;
}
Если ваша цель - разрешить пользователю выбирать несколько элементов, используйте JCheckBox, а не JRadioButton. Визуальные сигналы важны. Большинство людей полагают, что можно выбрать только одну радиокнопку. Вы не хотите, чтобы пользователи угадывали, как что-то работает, так же, как вы не ставили бы кнопку-бар на дверь, которая открывается внутрь. – VGR