Я разрабатываю приложение Java Desktop. В нем у меня есть 4 JButtons
на JPanel
. Теперь я хочу, чтобы всякий раз, когда нажимается кнопка, цвет фона меняется на какой-либо другой цвет (например, оранжевый), чтобы представить, что он был нажат, а цвет фона всех остальных 3 кнопок сбросился до их цвета по умолчанию (в случае, если любой из них был оранжевым фоновый цвет).Как установить фоновый цвет JButton в Java?
Итак, в свое время только одна кнопка может иметь оранжевый цвет.
В настоящее время подход, который я применил в том, что я реализовал следующий код в xxxActionPerformed()
методом JButton Button1
button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
и аналогично для остальных трех кнопок.
Теперь на самом деле, я не хочу, чтобы цвет backgroud был серым (для кнопки unclicked). Вместо этого мне нужен цвет фона по умолчанию, так что цвет backgroud будет подстраиваться под внешний вид графического интерфейса пользователя в зависимости от внешнего вида платформы конечного пользователя.
Q1. Как получить цвет фона по умолчанию?
Q2. Это правильный подход для этого или есть ли какой-либо другой механизм, посредством которого я могу сгруппировать все четыре кнопки в группе кнопок, чтобы только одно может иметь указанное свойство за один раз (например, переключатели)?
+1 для JToggleButton. Использует 'null' надежный? – trashgod
+1 для предложения наилучшего подхода (используя JToggleButton). Я искал такой подход. Спасибо –
@trashgod Я использовал его много раз без проблем, но не с JToggleButtons ... в любом случае это зависит от внешнего вида и чувства, чтобы почитать его или нет: - | это хорошая причина использовать цвет UIManager или использовать значки –