我正在使用10.7.4视网膜。当我使用getRootPane().putClientProperty("apple.awt.brushMetalLook", true);
时,我的JFrame看起来不像预期的那样
我尝试在JVM 1.6.0_51上运行它。它看起来像这样:
甚至用-d32和-d64尝试过。
当我在最新的JVM 1.7.0_25上运行它时,它将看起来像这样:
当我在10.6 mac上的JVM 1.6.0_15上运行它时,两者看起来都不像它们应该的样子:
有办法解决这个问题吗?视网膜分辨率可能是原因吗?
这篇帖子与之前问过的与此帖子有关:JFrame is lagging on resize
最佳答案
是的,您可以通过尽早放置客户端属性来解决此问题。
Documentation说:
警告:必须在Window的重量级对等之前设置此属性
被建造。在组件上调用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.0_05):希望对您有所帮助。
关于java - apple.awt.brushMetal在Mac 10.7视网膜上查看奇怪的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18542062/