【发布时间】:2014-08-18 08:09:26
【问题描述】:
我正在使用以下代码创建一个非常简单的JFrame,但由于某种原因它没有显示任何组件,只是一个空白框。为什么会这样?我创建了很多次框架,但我就是不知道出了什么问题。代码是:
Main(){
JFrame frame = new JFrame("Colorizer | By: NonameSL");
frame.setSize(400,200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.setContentPane(panel);
textField=new JTextField("Enter your name!");
textField.setBounds(0,0,40,200);
textField.setVisible(true);
frame.getContentPane().add(textField);
button=new JButton("Go!");
button.setBounds(0, 200, 40, 200);
button.setVisible(true);
frame.getContentPane().add(button);
rectangle=new RecShape(Color.WHITE);
rectangle.setBounds(0,40,400,160);
rectangle.setVisible(false);
frame.getContentPane().add(rectangle);
Main.frame=frame;
registerButton();
}
RecShape 类是我创建的一个类,用于在屏幕上简单地创建一个矩形。
怎么了?
【问题讨论】:
-
Java GUI 可能必须在多个平台、不同的屏幕分辨率和使用不同的 PLAF 上工作。因此,它们不利于组件的精确放置。为强大的 GUI 组织组件,而不是 use layout managers 或 combinations of them,以及 white space 的布局填充和边框。
-
顺便说一句,永远不要打电话给
setBounds/setSize/setLocation把这一切都交给 LayoutManager,这是他们的工作,而不是你的。
标签: java swing jframe components