我制作了一个简单的Swing应用程序。但渲染表现出错误。我做错了什么或是个错误吗?
这是一个简单的小型JFrame,带有文本字段,按钮和空列表。如果我首先水平调整窗口大小然后输入文本字段,按钮会突然消失。
这是我的代码:
public class App extends JFrame {
public App() {
JTextField messageFld = new JTextField();
JButton saveBtn = new JButton("Save");
JPanel inputPanel = new JPanel(new BorderLayout());
inputPanel.add(messageFld, BorderLayout.CENTER);
inputPanel.add(saveBtn, BorderLayout.EAST);
JList<Data> list = new JList<Data>();
JPanel panel = new JPanel(new BorderLayout());
panel.add(inputPanel, BorderLayout.NORTH);
panel.add(list, BorderLayout.CENTER);
this.getContentPane().add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Test application");
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new App();
}
});
}
}
以下是一些截图:
启动时
水平调整大小后
在文本字段中列出几个字符后
将鼠标移到按钮上
我使用Windows 7,Java 1.7.0和Eclipse Indigo SR1。 我使用的是JDK 1.7.0.0,现在已升级到JDK 1.7.0.10,但我仍然遇到同样的问题。
当我打印系统属性时,我得到了这个结果:
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.runtime.version"));
> 1.7.0_01
> 1.7.0_01-b08
答案 0 :(得分:9)
如果问题是由图形驱动程序引起的,则设置下面的系统属性之一可能会有所帮助。不太确定Java 7中是否仍支持道具。
sun.java2d.d3d=false
sun.java2d.ddoffscreen=false
sun.java2d.noddraw=true
答案 1 :(得分:1)
我正在使用eclipse helios服务版本2,而java 1.6和我没有得到那个bug;这对我来说可以。但是它不会让我向JList添加参数...这可能是因为我使用的是旧版本的java ...所以基本上我的设置并没有JList的参数它工作...我不知道这是否会帮助你,但这些是我的观察