#java #swing #awt
Вопрос:
В моей программе у меня есть 2 кнопки: первая изменяет фон кадра, вторая изменяет фон кнопки(только для себя). Дело в том, что программа должна изменять фон кнопок для каждой кнопки в программе(не только для себя). Как я должен переписать диалог?
class ButtonBackgroundChange implements ActionListener{ private JDialog dialog; private JColorChooser chooser; private Color currentBackground; public ButtonBackgroundChange(JButton button1, Component component, Color currentBackground){ this.currentBackground = currentBackground; chooser = new JColorChooser(); dialog = JColorChooser.createDialog(component, "Background Color", false /* not modal */, chooser, event -gt; button1.setBackground(chooser.getColor()), null /* no Cancel button listener */); } @Override public void actionPerformed(ActionEvent e) { chooser.setColor(currentBackground); dialog.setVisible(true); } }
Комментарии:
1. Если вы сохраните свои кнопки в списке, который вы передадите функции, вы сможете просмотреть его и установить цвет фона для каждой кнопки.
2. @MarkoMarinkovic Могу ли я сделать это без списка? Например, с использованием EventQueue?
3. Если вы хотите изменить фон кнопок для каждой кнопки в программе , вам нужно ссылаться на каждую кнопку. Лучше всего хранить ссылки в коллекции, как предложил @MarkoMarinkovic, или, в качестве альтернативы, перечислить их все в коде.
4. @MarkoMarinkovic Я добавил список, спасибо за комментарий
5. Не беспокойтесь, пожалуйста, примите ответ, если он был полезен.
Ответ №1:
Если вы сохраните свои кнопки в списке, который вы передадите функции, вы сможете просмотреть его и установить цвет фона для каждой кнопки.