Java:运行和调试之间的差异(JTextField的原因)

时间:2016-02-08 21:28:05

标签: java swing debugging jtextfield

我正在做一个简单的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。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

checkbox.checked = false应该是你做的最后一件事。动态添加组件(即在该调用之后)将要求您重新验证组件层次结构(否则您将获得刚刚看到的内容)。