你好。 我的PC有一个问题。源代码是正确的。我的问题是图形渲染。这个bug只在一台笔记本电脑上。 1台PC中的示例屏幕:
(http://中的屏幕)
JLabel - i.gyazo.com/deafe8b111007562e47d93ab4f9728a3.png
JMenu - i.gyazo.com/1d5c5babd243d958073d2635f64b0e8a.png
JMenuItem - http://i.gyazo.com/aca39fd386d7d186c1f22bb2d629148e.png
JMenuItem - i.gyazo.com/d78f33834913e4548edf93f8bd996002.png
在其他PC上没有问题:http://i.gyazo.com/51e9c928627d7091bbb302b5eb78b6a2.png
我认为这个问题出现在java JRE中(我使用v1.7)并重新安装它。但问题仍然存在。此外,我关闭了桌面组合 - 但也没有运气。我现在应该怎么做?也许问题在于视频驱动程序或硬件加速? 告诉我如何解决这个问题?
[消息已编辑]
示例“错误代码”:
public class Example extends JFrame {
private static final long serialVersionUID = 1L;
public Example(){
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("\u041C\u0435\u043D\u044E");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("\u0424\u0430\u0439\u043B");
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u0412\u044B\u0445\u043E\u0434");
mnNewMenu.add(mntmNewMenuItem_1);
}
public static void main(String[] args){
Example form = new Example();
form.setSize(640,480);
form.setLocationRelativeTo(null);
form.setVisible(true);
}
}
屏幕错误:i.gyazo.com/9fcf258e62c498f8468d47b7f73759e1.png
屏幕正常:i.gyazo.com/ec27e655a0209e4613c3a19863fa0e18.png
好的,这个问题解决了!
从我的电脑上,我添加了一行:
System.setProperty("sun.java2d.d3d", "false");
System.setProperty("sun.java2d.ddoffscreen","false");
System.setProperty("sun.java2d.noddraw", "true");
此视频驱动程序错误。