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

标签 java user-interface swing background-color

我正在开发 Java 桌面应用程序。我在 JPanel 上有 4 个 JButtons。现在我希望每当单击一个按钮时,它的背景颜色就会更改为其他颜色(比如橙色),以表示它已被单击,并且所有其他 3 个按钮的背景颜色将重置为其默认颜色(以防它们中的任何一个有橙色)背景颜色)。

因此,一次只能有一个按钮具有橙色。

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

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

其余三个按钮也类似。

现在实际上,我不希望背景颜色为灰色(对于未单击的按钮)。相反,我想要默认背景颜色,这样背景颜色就会根据最终用户平台的外观和感觉自行调整为 GUI 的外观和感觉。

Q1。如何获取默认背景颜色?

Q2。这是执行此操作的正确方法还是有任何其他机制可以将所有四个按钮分组到一个按钮组中,以便一次只能有一个按钮具有指定的属性(如单选按钮)?

最佳答案

  1. 只需使用 null 即可使用默认颜色:

    button1.setBackground(Color.ORANGE);
    button2.setBackground(null);
    ...
    
  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);
    ...
    

关于java - 如何在 Java 中设置 JButton 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086355/

相关文章:

java - 在 session 属性中设置许多对象——可以吗?

java - 使用低通滤波器在频域中去除信号中的白噪声

java - 函数可以在类的字段中使用吗(java)

java - 停止调整超出屏幕分辨率范围的大小 (JavaFX)

任意数量 Pane 的 CSS 动画过渡效果

java - 客户端-服务器应用程序 JAVA,服务器不接收数据

java - 向由另一个 JButton 创建的 JButton 添加操作

java - 从 JButton 发送命令行命令?

java - 如何保护 Android 中的 Activity

iOS View 和 UI/UX