java - Java GUI 显示空白,直到调整大小
问题描述
我已经为许多可用的选项编写了一个 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(),以便所有组件都以其首选大小显示。
推荐阅读
- javascript - 使用 laravel 和 ajax 检索选择的 id
- php - 如何正确连接到 MySQL 数据库?
- javascript - JavaScript 通过链接更改输入值
- windows - 在运行时编辑 PowerShell 脚本
- django - 如何在 django 视图中更改 XML API 中的根和项目列表名称
- javascript - 拒绝启用位置弹出后反应本机错误
- mysql - 关系数据库:属性依赖于上下文的项目
- visual-c++ - Godot:编译的源项目无法在 Windows 10 中打开
- reactjs - React Redux 和 React Router 连接
- python - 如何将矩阵/二维数组写入文本文件python