我已经为其中的许多可用选项编写了 java gui 代码。 gui 也设置为visible true,但直到我选择它的边框并拖动它们来调整gui 窗口的大小时它才会显示。手动调整大小后,它显示了一切。此外,文本标签、文本字段和按钮不在换行中,而是一一放置。请告诉我有什么问题:这是代码的一部分:
public static void initGUI(){
JFrame fr = new JFrame();
Container cont = fr.getContentPane();
cont.setLayout( new FlowLayout( ) );
FlowLayout layout = new FlowLayout();
cont.setLayout(layout);
frame.setSize(200,300) ;
frame.setVisible(true) ;
JTextField tName = new JTextField(30);
JTextField tCNIC = new JTextField(15);
JLabel nameLabel = new JLabel("Name:");
JLabel cnicLabel = new JLabel("CNIC #:");
cont.add(nameLabel);
cont.add(tName);
cont.add(cnicLabel);
cont.add(tCNIC);
JButton Cancel = new JButton ("Canel" );
JButton OK = new JButton ("OK" );
savebtn.setPreferredSize(new Dimension(150, 50));
retbtn.setPreferredSize(new Dimension(150, 50));
cont.add(savebtn);
cont.add(retbtn);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
最佳答案
frame.setVisible(true) ;
应在所有组件添加到框架后调用上述语句。所以它应该是你的方法中的最后一个语句。
此外,您应该调用:
frame.pack();
而不是 setSize(),在使框架可见之前,以便所有组件都以其首选大小显示。
关于Java GUI 在调整大小之前显示空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59339779/