【发布时间】:2010-10-31 08:43:15
【问题描述】:
我正在尝试解决我在 OS X 中的 java 小程序中的一些 UI 渲染错误,但我遇到了一个我无法解决的问题。
我们打开的所有扩展 java.awt.Frame 的窗口似乎都忽略了 setBackground() 调用,而是使用 OS X 默认值(拉丝金属或灰色渐变,具体取决于 OS 版本)。我们打开的任何扩展 Dialog 的东西都可以正常工作。
我尝试覆盖paint() 方法并在那里绘制背景颜色。但是,这仅部分有效。在某些地方,背景确实是正确的颜色,但 Frame 的所有子组件仍然使用 OS X 背景绘制,而不是我设置的背景,所以现在看起来更糟。这些相同的组件类型(面板、复选框等)在几个对话框扩展窗口中使用,它们在那里工作正常,所以我猜框架一定有什么东西把事情搞砸了。
有没有办法为在 OS X 中工作的 Frame 设置背景颜色?有没有其他人以前见过这个?
请注意,我被困在 Java 1.1 规范的编码中,因为我需要支持 Microsoft JVM(不要让我开始...)。
【问题讨论】:
-
Swing 在 1.1 上运行,不是吗?
-
Swing 至少在 1.2 之前才存在。我不能使用它,而且现在这样重写 UI 是不可能的。
-
Swing 不是 1.1 的一部分,但可用于它。从 AWT 到 Swing 的大部分转换是搜索和替换操作。
-
我们正在慢慢切换到 Flex 应用程序,所以我们真的不想在应用程序上做任何重要的工作,而是切换到 Swing(即使只是查找/替换)将是一个大项目。