为什么我的文本框在没有最大化java GUI的情况下不显示

为什么我的文本框在没有最大化java GUI的情况下不显示,java,swing,jframe,jpanel,jtextfield,Java,Swing,Jframe,Jpanel,Jtextfield,我正在尝试创建带有两个文本框的小型GUI。最短代码如下: import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class MortgageCalculator implements ActionListener { JTextField loanAmount, loanTerm;

我正在尝试创建带有两个文本框的小型GUI。最短代码如下:

import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MortgageCalculator implements ActionListener {

    JTextField loanAmount, loanTerm;
    JFrame jf;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        mygui mg = new mygui();
        mg.initUIPanel();
    }

    public void initUIPanel() {
        jf = new JFrame();
        jf.setTitle("my gui");
        jf.setLocation(300, 400);
        jf.setSize(400, 500);
        jf.setVisible(true);
        jf.setResizable(false);

        jf.show();

        JPanel panel = new JPanel();
        panel.setLayout(null);

        loanAmount = new JTextField(15);
        loanAmount.setBounds(170, 20, 125, 20);

        loanTerm = new JTextField(15);
        loanTerm.setBounds(170, 60, 125, 20);

        panel.add(loanAmount);
        panel.add(loanTerm);

        jf.add(panel, "Center");
    }
}

问题是它只显示帧,而不显示txtboxs。我只能在最大化帧一次后才能看到框。如果再次最小化它,那么我仍然可以看到它们,但不是一开始。我做错了什么?

尝试摆脱这个问题,这样JPanel将使用默认的FlowLayout管理器

panel.setLayout(null);

您可以在这里阅读更多->

您在哪里将面板添加到
JFrame
?请向我们展示所有必要的代码。添加所有内容后,请致电
setVisible(true)
。我更改了代码。(我的意思是添加更多)。感谢@Robin的评论;使用布局,而不是
setBounds
。谢谢朋友们。成功了。最后,我再次为frame添加了setVisible(true)。它成功了。我真的非常感谢你们的帮助。谢谢你,罗宾。谢谢垃圾神(也谢谢你编辑了我的台词)。这是一个有价值的评论,但不是答案。试过了。但这很糟糕。整个结构乱七八糟。