我尝试在Java中使用Swing放置一个文本字段和一个按钮和标签。我成功添加了标签和按钮但是如果我尝试添加文本字段,则孔框架是空白的,所以没有任何显示,不是甚至按钮或标签。 我做错了什么?
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;
public class SwingPartOne extends JFrame {
public static void main(String[] args) {
new SwingPartOne();
}
public SwingPartOne(){
this.setSize(800,800);
this.setLocationRelativeTo(null);
this.setVisible(true);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize();
int xPos = (dim.height / 2) - (this.getHeight() / 2);
int yPos = (dim.width / 2) - (this.getWidth() / 2);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("First Jframe");
JPanel thePanel = new JPanel();
JLabel label1 = new JLabel("Some random text .");
label1.setText("New text.");
label1.setToolTipText("Surprize!");
JButton thebutton1 = new JButton("BOOM!");
JTextField textField = new JTextField("Some text" , 15);
textField.setColumns(5);
textField.setSize(200,200);
textField.setText("Some random text");
thePanel.add(label1);
thePanel.add(textField);
thePanel.add(thebutton1);
this.add(thePanel);
}
}
答案 0 :(得分:1)
我通过LuxxMiner的帮助将this.setVisible(true)
放在最后解决了这个问题。
> 在构造函数的末尾调用this.setVisible(true),以便它可以验证。另外,还有其他一些注意事项:1)textField.setSize(200,200);不会做太多,改为覆盖它的getPreferredSize方法(只有你真的需要)。 2)要使框架居中,您也可以简单地调用setLocationRelativeTo(null)。没有必要计算xPos和yPose