我正在使用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。

09-13 14:26