我做了一个简单的Swing应用程序。但是渲染表现出了一些问题。我是做错了什么还是它是一个bug?
这是一个只包含文本框、按钮和空列表的小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();
}
});
}
}
以下是几个截图:
启动时
水平调整大小后
在文本字段中输入字符后
鼠标移到按钮上后
当我打印系统属性时,结果如下:
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.runtime.version"));
> 1.7.0_01
> 1.7.0_01-b08
BorderLayout.EAST
或BorderLayout.LINE_END
。将组件放置在其他任何位置都不会导致问题。因此看起来那个区域有问题 :-) - nIcE cOw