我正在开发 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。这是执行此操作的正确方法还是有任何其他机制可以将所有四个按钮分组到一个按钮组中,以便一次只能有一个按钮具有指定的属性(如单选按钮)?
最佳答案
只需使用
null
即可使用默认颜色:button1.setBackground(Color.ORANGE); button2.setBackground(null); ...
考虑将 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/