在Mac上控制JButtons的外观

时间:2011-11-22 04:24:57

标签: java macos swing look-and-feel

对于我的作业,我需要在JFrame中的网格JPanel中使用JButtons的二维数组。单击时,JButtons必须更改颜色。我不能让他们持有任何颜色。

我实现了previous thread中提出的解决方案,发现只能生成边框颜色:

JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);

没有边框:

button.setBorderPainted(false);

只会导致整个JFrame变为红色。

此问题仅适用于MAC计算机,而不是预期的分配问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

请记住:Swing工具包非常擅长使系统外观“几乎正确”。但是,如果您真的需要系统感觉,还有其他选项,如SWT更适合。

如果你想要一致性,那么Swing总是可以默认使用旧的applet看起来虽然有点无聊但非常可靠。这样做的好处是,当我们回滚到更多简单的看起来gui工具包,平台特定的怪癖神奇地似乎消失了。

我认为如果您只是将外观设置为标准的摇摆风格外观,您可能会很容易地解决问题。

解决方案

我建议打电话给

    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());

在初始化应用程序的静态代码块中。

相关问题