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