Jtextfield 在启动时不显示。但调整大小后,是的

Jtextfield doesn't show up on launch. but after resize, yes

嗯,我需要一点帮助。这段代码的目的是显示一个带有按钮和文本字段的计算器。我正在考虑使用 borderlayout,它在北方有一个面板,文本字段所在的面板在南方,按钮在南方的面板 be.Thats 我正在放置一个网格布局来制作按钮。

但遇到的问题是,当我输入文本字段时,它不会在启动时显示。但是当我手动重新调整 window 的大小时,它会立即出现。有人知道怎么回事吗?

 public class calculator extends JFrame {

 public calculator() {
  super("Calculator");

  setLayout(new BorderLayout());
  setSize(new Dimension(250,250));
    setVisible(true);


 }

 public static void main(String[] args) {
    calculator c = new calculator();
    JPanel panel1 = new JPanel();
    panel1.add(new JTextField(20));
    c.add(panel1,BorderLayout.NORTH);

 }

}

编辑:已解决

public class calculator extends JFrame {

    public calculator() {
        super("Calculator");    
        setLayout(new BorderLayout());
        setSize(new Dimension(250, 250));
        // setVisible(true); Wrong

    }

    public static void main(String[] args) {
        calculator c = new calculator();
        JPanel panel1 = new JPanel();
        panel1.add(new JTextField(20));
        c.add(panel1, BorderLayout.NORTH);
        c.setVisible(true); // Your components must be added before.
    }

}