对于我的作业,我需要在JFrame中的网格JPanel中使用JButtons的二维数组。单击时,JButtons必须更改颜色。我不能让他们持有任何颜色。
我实现了previous thread中提出的解决方案,发现只能生成边框颜色:
JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);
没有边框:
button.setBorderPainted(false);
只会导致整个JFrame变为红色。
此问题仅适用于MAC计算机,而不是预期的分配问题。
有什么想法吗?
答案 0 :(得分:5)
请记住:Swing工具包非常擅长使系统外观“几乎正确”。但是,如果您真的需要系统感觉,还有其他选项,如SWT更适合。
如果你想要一致性,那么Swing总是可以默认使用旧的applet看起来虽然有点无聊但非常可靠。这样做的好处是,当我们回滚到更多简单的看起来gui工具包,平台特定的怪癖神奇地似乎消失了。
我认为如果您只是将外观设置为标准的摇摆风格外观,您可能会很容易地解决问题。
解决方案
我建议打电话给
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());
在初始化应用程序的静态代码块中。