我正在做一个简单的Java应用程序来管理密码。我写了程序的这一部分:

public class main {

    public static void main(String[] args) {

        JFrame jf = new JFrame("Ttile");
        JPanel jp = new JPanel();
        jp.setLayout(null);

        jf.setVisible(true);
        jf.setSize(1000,1000);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton jb = new JButton("Button");
        jb.setBounds(0,0,120,35);

        JTextField jtf = new JTextField(30);
        jtf.setBounds(100,100,120,30);

        jp.add(jb);
        jp.add(jtf);
        jf.getContentPane().add(jp);
    }
}


问题是,当我实例化一个JTextField(仅此组件)时,窗口(或更佳的是JPanel)在运行模式下不显示任何其他组件,而在调试模式下它可以正常工作。是我的视频卡引起的吗?还是当前版本的Netbeans / Java有问题?我很困惑,因为我不明白原因:S。

注意:如果我将窗口扩展到全屏,则每个组件都是可见的。为什么会出现此初始问题?

谢谢你的帮助。

最佳答案

setVisible(true)应该是您要做的最后一件事。动态添加组件(也就是说,在该调用之后)将要求您重新验证组件层次结构(否则您将获得刚刚看到的内容)。

关于java - Java:运行和调试之间的差异(JTextField的原因),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35279674/

10-13 01:13