我想用几个按钮和文本字段创建一个简单的Java Swing应用程序。但是,启动程序后,我看到的只是一个空窗口。所有元素仅在我手动更改窗口大小时出现。我该如何更改并使所有元素立即显示?
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;
class JavaLesson extends JFrame{
public static void main(String[] args){
new JavaLesson();
}
public JavaLesson(){
this.setSize(400,400);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();
int xPos = (dim.width / 2) - (this.getWidth() / 2);
int yPos = (dim.height / 2) - (this.getHeight() / 2);
this.setLocation(xPos,yPos);
this.setTitle("My app");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
JPanel panel = new JPanel();
JLabel label1 = new JLabel("This is label");
JButton button1 = new JButton("Send");
JTextField textField1 = new JTextField("Type here",7);
panel.add(label1);
panel.add(button1);
panel.add(textField1);
this.add(panel);
textField1.requestFocus();
}
}
答案 0 :(得分:1)
在将面板添加到框架后,必须在行上设置this.setVisible(true),这样做将显示已添加到框架中的所有组件。
尝试一下,看看是否可行。
public JavaLesson(){
this.setSize(400,400);
..
..
JPanel panel = new JPanel();
JLabel label1 = new JLabel("This is label");
JButton button1 = new JButton("Send");
JTextField textField1 = new JTextField("Type here",7);
panel.add(label1);
panel.add(button1);
panel.add(textField1);
this.add(panel);
this.setVisible(true);
}
希望这会有所帮助。 干杯:)