1

我正在为一个中等复杂的应用程序开发一个 GUI,使用 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);
    }
}
4

1 回答 1

1

正如我的评论中所述......你试过SystemColor.control吗?它应该工作!但是,在使用时要小心SystemColor……它是主要使用 Motif 和 Windows 95-98 UI 时的遗物。通常情况下,它对于处理现代 UI 是完全不够的。

于 2012-08-20T22:14:35.830 回答