我在更改按钮背景的颜色时遇到问题,我刚刚开始学习如何使用GUI,并且下面的代码在Windows上可以正常使用,但是我使用的是Mac OS。
你能帮我吗?
我已经添加了按钮,然后更改了颜色,但是在运行它时,它会弹出带有9个按钮的窗口,但是所有按钮都是白色,背景是红色,如您所见,我将它们设置为蓝色。
b1.setBackground(Color.BLUE);
b2.setBackground(Color.BLUE);
b3.setBackground(Color.BLUE);
b4.setBackground(Color.BLUE);
b5.setBackground(Color.BLUE);
b6.setBackground(Color.BLUE);
b7.setBackground(Color.BLUE);
b8.setBackground(Color.BLUE);
b9.setBackground(Color.BLUE);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.getContentPane().setBackground(Color.RED);
this.setBackground(Color.BLACK);
this.setVisible(true);
this.setBounds(100, 100, 800, 500);
在OSX和Windows上绘制按钮的默认方式似乎有所不同。
由于您的问题很笼统,因此我不太确定预期的行为是什么,因此以下是您的问题的一些解决方案:
我刚刚在Mac上进行了测试,您需要指定按钮应该是不透明的:
b1.setOpaque(true);
根据您要完成的工作,可能需要您指定也不绘制边框:
b1.setBorderPainted(false);
如果您不指定不应该绘制边框,那么您将得到一个带有蓝色背景的正方形和一个中间带有默认颜色的按钮。
如果希望在两个操作系统上看起来都一样,则应在JFrame中使用以下行:
try {
UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
最后一种方法会让您失去OSX / Windows的外观,但是按钮可能看起来更像您期望的那样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句