如何在Java中设置JButton的背景颜色?

Yat*_*oel 5 java user-interface swing background-color

我正在开发一个Java桌面应用程序.在其中我有4 JButtonsJPanel.现在我希望每当点击一个按钮时,它的背景颜色会变成其他颜色(比如橙色)来表示它已被点击,所有其他3个按钮的背景颜色重置为默认颜色(如果它们中的任何一个都有橙色)背景颜色).

因此,一次只有一个按钮可以具有橙色.

我应用的当前方法是我在xxxActionPerformed()JButton button1 的方法中实现了以下代码

button1.setBackground(Color.Orange);
button2.setBackground(Color.Gray);
button3.setBackground(Color.Gray);
button4.setBackground(Color.Gray);
Run Code Online (Sandbox Code Playgroud)

其余三个按钮同样如此.

实际上,我不希望背景颜色为灰色(对于未点亮的按钮).相反,我想要默认的背景颜色,以便背景颜色根据最终用户平台的外观将其自身调整为GUI的外观.

Q1.如何获得默认背景颜色?

Q2.这是正确的方法吗?还是有任何其他机制,通过它我可以将按钮组中的所有四个按钮分组,以便只有一个可以同时具有指定的属性(如单选按钮)?

Zap*_*ppi 8

您可以从UIManager获取按钮的标准背景颜色:

button1.setBackground(UIManager.getColor("Button.background"));
Run Code Online (Sandbox Code Playgroud)

据我所知,按键可以改变不同的外观和感觉.这是一个很好的webstart应用程序,显示所有可用的键:

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


use*_*421 8

  1. 只是null用来使用默认颜色:

    button1.setBackground(Color.ORANGE);
    button2.setBackground(null);
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 考虑将JToggleButtons与ButtonGroup一起使用,设置按钮的Icon和PressedIcon.无需更改背景颜色.

    button1 = new JToggleButton(new ImageIcon("0.jpg"));
    button1.setSelectedIcon(new ImageIcon("1.jpg"));
    button2 = new JToggleButton(new ImageIcon("0.jpg"));
    button2.setSelectedIcon(new ImageIcon("2.jpg"));
    ...
    ButtonGroup group = new ButtonGroup();
    group.add(button1);
    group.add(button2);
    ...
    
    Run Code Online (Sandbox Code Playgroud)