我正在使用Java AWT为中等复杂的应用程序开发GUI,当在Linux的X11(带有任何桌面管理器)中运行它时,它看起来很棒,但是在Windows XP中,它看起来很奇怪。
实际上,起初看起来还不错,但是如果我需要更改任何框架的背景色,之后就无法将其更改回正确的颜色。当我尝试将背景颜色设置为正常时,框架看起来像纯白色背景,而不是XP中本机应用程序具有的米色。我似乎无法使它们看起来更自然。
我试过了:
frame.setBackground(null);
和
frame.setBackground(java.awt.SystemColor.window);
没有成功。任何建议,将不胜感激。
在此先感谢您的帮助!
-乔纳森·佩里·豪特斯
编辑:这是一个简单的示例,以说明我的意思,我希望这个小的空白框是米色的,但在Windows XP中它是白色的:
import java.awt.*;
public class HelloWorld {
public static void main(String[] args) {
Frame f = new Frame("Hello World");
f.setPreferredSize(new Dimension(200, 200));
f.setBackground(SystemColor.window);
f.pack();
f.setVisible(true);
}
}
最佳答案
如my comment中所述...您是否尝试过SystemColor.control
?它应该工作!但是请注意,使用SystemColor
时,这是主要使用Motif和Windows 95-98 UI时的遗物。通常,它完全不足以处理现代UI。