Java apple.awt.com在mac 10.7视网膜上的怪异行为
我用的是10.7.4的视网膜。当我使用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上运行它时,两者看起来都不像应该的那样: 有没有办法解决这个问题?视网膜分辨率可
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):
希望,这对你有帮助