Есть 12 JButtons в JPanel. Я хочу щелкнуть один из них и отключить все остальные (он будет «выделен»). И затем, если я нажму на отключенный, тогда предыдущий отключится, и процесс будет таким же. Я хочу сделать это, используя итерацию и собственный метод, учитывая, что есть 12 кнопок, и я хочу избежать повторения кода.Как включить JButton одним щелчком мыши, а затем отключить все остальные путем итерации?
Учтите, что 12 JButtons уже объявлены. Затем мы создаем ArrayList из JButtons для их хранений и ArrayList из булевых хранить свои булевы с поддержкой стоимостей:
ArrayList<JButton> arrayOfButtons = new ArrayList<JButton>();
ArrayList<Boolean> arrayOfBooleans = new ArrayList<Boolean>();
Мы добавляем все кнопки на arrayOfButtons:
arrayOfButtons.add(btn1);
arrayOfButtons.add(btn2);
arrayOfButtons.add(btn3);
arrayOfButtons.add(btn4);
arrayOfButtons.add(btn5);
arrayOfButtons.add(btn6);
arrayOfButtons.add(btn7);
arrayOfButtons.add(btn8);
arrayOfButtons.add(btn9);
arrayOfButtons.add(btn10);
arrayOfButtons.add(btn11);
arrayOfButtons.add(btn12);
И тогда мы хранить в arrayOfBooleans их состояния позволили итерируя над arrayOfButtons:
for (int i = 0; i < arrayOfButtons.size(); i++) {
arrayOfBooleans.add(arrayOfButtons.get(i).isEnabled());
}
Теперь, как я могу реализовать MouseListener и создать благоприятные-по-исключения системы Итера ting over arrayOfButtons? Идея довольно проста: «Включите ее, отключите других», но я не могу понять, как это сделать на практике.
Благодарю вас!
Я не знал о существовании такого понятия, как «ButtonGroup». Это может быть действительно полезно. И я также рассмотрю JToggleButton. Я знаю, что это не имеет никакого смысла, но именно поэтому я реализую MouseListener (а не ActionListener). Я благодарю вас за ваш ответ! –
Я должен указать, что вы можете взглянуть на использование 'JRadioButton' вместо' JToggleButton', но это сведется к тому, что вы пытаетесь достичь – MadProgrammer