Java apple.awt.com在mac 10.7视网膜上的怪异行为

Java apple.awt.com在mac 10.7视网膜上的怪异行为,java,macos,jvm,retina-display,look-and-feel,Java,Macos,Jvm,Retina Display,Look And Feel,我用的是10.7.4的视网膜。当我使用getRootPane().putClientProperty(“apple.awt.brushmetrolok”,true)时,我的JFrame看起来不像预期的那样 我尝试在JVM1.6.0_51上运行它。它将如下所示: 甚至用-d32和-d64进行了尝试。 当我在最新的JVM 1.7.0_25上运行它时,它看起来是这样的: 当我在10.6Mac上的JVM1.6.0_15上运行它时,两者看起来都不像应该的那样: 有没有办法解决这个问题?视网膜分辨率可

我用的是10.7.4的视网膜。当我使用
getRootPane().putClientProperty(“apple.awt.brushmetrolok”,true)时,我的JFrame看起来不像预期的那样
我尝试在JVM1.6.0_51上运行它。它将如下所示:

甚至用-d32和-d64进行了尝试。

当我在最新的JVM 1.7.0_25上运行它时,它看起来是这样的:

当我在10.6Mac上的JVM1.6.0_15上运行它时,两者看起来都不像应该的那样:

有没有办法解决这个问题?视网膜分辨率可能是原因吗?
这篇文章有点像《以前的问题》中的这篇文章:

是的,您可以通过尽早放置客户端属性来解决这个问题

报告说:

警告:此属性必须在窗口的重量级对等方之前设置 是创建的。在组件上调用addNotify()后 创建重量级对等体时,更改此属性没有 效果

这里是一个MWE:

import javax.swing.JFrame;

public class Main {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Hello World");
        frame.getRootPane().putClientProperty("apple.awt.brushMetalLook", Boolean.TRUE);
        frame.setSize(400, 300);
        frame.setVisible(true);
    }
}

如果交换
frame.setVisible(true)和我们放置客户端属性的部分,您会得到一个黑色框架(Mac OS 10.9.4,Java 1.8.005):

希望,这对你有帮助