Как выбрать цвет фона JButton в Java?

Я разрабатываю Настольное приложение Java. В нем я имею 4 JButtons на a JPanel. Теперь я хочу это каждый раз, когда кнопка нажата ее изменения цвета фона в некотором другом цвете (скажите оранжевый) для представления этого, это было нажато и цвет фона всех других 3 сброса кнопок к их цвету по умолчанию (в случае, если у любого из них был Оранжевый цвет фона).

Так, когда-то только одна кнопка может иметь оранжевый цвет.

Текущий подход, который я применил, состоит в том, что я реализовал следующий код в xxxActionPerformed() метод JButton button1

button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);

и так же для остальных три кнопки.

Теперь в фактическом, я не хочу цвета backgroud как Gray (для ненажатой кнопки). Вместо этого я хочу цвет фона по умолчанию так, чтобы цвет backgroud скорректировал себя к стилю GUI согласно стилю платформы конечного пользователя.

Q1. Как я могу получить цвет фона по умолчанию?

Q2. Действительно ли это - корректный подход, чтобы сделать это или Является там каким-либо другим механизмом, через который я могу сгруппировать все эти четыре кнопки в группе кнопок так, чтобы только один мог иметь указанное свойство когда-то (как переключатели)?

5
задан Cœur 11 September 2017 в 14:40
поделиться

4 ответа

  1. Просто используйте NULL , чтобы использовать цвет по умолчанию:

     Button1.Setbackgroundground (Color.Orange);
    Button2.Setbackground (NULL);
     ...
     
  2. Рассмотрите возможность использования JToggleButtons с помощью кнопок кнопок, установите значок и нажмите кнопки. Не нужно менять цвет фона.

     Button1 = New JtoggleButton (New Imageicon («0.jpg»));
    button1.setseledicon (New Imageicon («1.jpg»));
    button2 = new jtogglebutton (new imageicon ("0.jpg"));
    Button2.setseledicon (New Imageicon («2.jpg»));
     ...
    ButtonGroup Group = новая кнопка групп ();
    group.add (button1);
    group.add (button2);
     ...
     
8
ответ дан 18 December 2019 в 09:50
поделиться

Вот сечение "Кнопки.фона" на основе этого примера :

*** Metal javax.swing.plaf.metal.MetalLookAndFeel 636 entries
Button.background: javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]

*** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1052 entries
Button.background: com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel$NimbusProperty@60961dff

*** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 entries
Button.background: javax.swing.plaf.ColorUIResource[r=174,g=178,b=195]

*** Mac OS X com.apple.laf.AquaLookAndFeel 705 entries
Button.background: com.apple.laf.AquaNativeResources$CColorPaintUIResource[r=238,g=238,b=238]
1
ответ дан 18 December 2019 в 09:50
поделиться

Q1.: Чтобы получить графический интерфейс кнопки, просто сделайте это

button1.setBackground(Color.Orange);
button2.setBackground(java.awt.SystemColor.control);
button3.setBackground(java.awt.SystemColor.control);
button4.setBackground(java.awt.SystemColor.control);

с этим классом (Java.awt.systemcolor. *), Вы можете получить цвет всех элементов вашего пользовательского интерфейса.

Q2.: Я никогда не слышал о группировках кнопок. Затем я не могу ответить на вас этот.

Надеюсь, это поможет.

1
ответ дан 18 December 2019 в 09:50
поделиться

Вы можете получить стандартный цвет фона для кнопок от Uimanager:

button1.setBackground(UIManager.getColor("Button.background"));

Насколько я знаю, ключи могут измениться в разных взглядах и чувствовать себя. Вот хорошее приложение Webstart, которое показывает все доступные клавиши:

http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/

8
ответ дан 18 December 2019 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: