Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Mac上控制JButtons的外观和感觉_Java_Macos_Swing_Look And Feel - Fatal编程技术网

Java 在Mac上控制JButtons的外观和感觉

Java 在Mac上控制JButtons的外观和感觉,java,macos,swing,look-and-feel,Java,Macos,Swing,Look And Feel,对于我的作业,我需要一个JFrame中网格JPanel中的二维JButtons数组。单击JButtons时必须更改颜色。我不能让它们保持任何颜色 我实施了a中提出的解决方案,发现周围的工作只产生边界颜色: JButton button = new JButton("test"); button.setBackground(Color.RED); button.setOpaque(true); 解开边界: button.setBorderPainted(false); 只会使整个JFrame变

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

我实施了a中提出的解决方案,发现周围的工作只产生边界颜色:

JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);
解开边界:

button.setBorderPainted(false);
只会使整个JFrame变为红色

此问题仅适用于MAC计算机,而不是任务的预期问题


有什么想法吗?

记住:Swing工具包非常擅长让系统看起来和感觉“几乎正确”。但是,如果您真的需要系统的感觉,还有其他一些选项,比如SWT,更适合您

如果您想要一致性,那么Swing可以始终默认为老式的applet外观,虽然有点无聊,但它非常可靠。这样做的好处是,当我们回到这个外观更简单的gui工具包时,特定于平台的怪癖似乎神奇地消失了

我认为,如果您只需将外观和感觉设置为标准的swing样式外观和感觉,您可能会发现问题很容易解决

解决方案

我建议你打电话给我

    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());

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

在这方面有一些问题,但我最初将其放在主要方法的末尾。它需要从一开始就走。谢谢你的帮助!