在Mac上控制JButtons的外观

Oca*_*shu 3 java macos swing look-and-feel

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

我实现了前一个线程中提出的解决方案,发现只能生成边框颜色:

JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);
Run Code Online (Sandbox Code Playgroud)

没有边界:

button.setBorderPainted(false);
Run Code Online (Sandbox Code Playgroud)

只是导致整个JFrame变红.

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

有什么想法吗?

jay*_*100 5

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

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

我认为如果您只是将外观和感觉设置为标准的摇摆风格外观,您可能会发现问题很容易解决.

解决方案

我建议打个电话

    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());
Run Code Online (Sandbox Code Playgroud)

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

  • 这有点麻烦,但我最初把它放在我的主要方法的末尾.它需要在开始时.谢谢您的帮助! (2认同)