Java Gui 不会显示面板和组件



>im 尝试制作一个程序以将管理员添加到 MS Access 数据库

我研究了很多次,发现所有的组件都需要在一个面板中,只有相同类型的J东西才能在一个面板中,所以我做了很多面板并将它们组合成一个大面板。

//frame details
final int FRAME_WIDTH = 1000; 
final int FRAME_HEIGHT = 1000; 
JFrame aFrame = new JFrame("Add admin"); 
aFrame.setSize(FRAME_WIDTH, FRAME_HEIGHT); 
aFrame.setVisible(true); 
aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
//panel declaration
JPanel BigPanel = new JPanel();
JPanel adminnameenter = new JPanel();
JPanel typeadminname = new JPanel();
JPanel adminlastnameenter = new JPanel();
JPanel typeadminlastname = new JPanel();
JPanel buttonaddadmin = new JPanel();
//labels, textfields, and buttons
JLabel newAdminName = new JLabel("Enter admin name");
JTextField adminName = new JTextField(7);
JLabel newadminlastname = new JLabel("Enter admin last name");
JTextField adminlastname = new JTextField(7);
JButton addadmin = new JButton("Add Admin");
//add things to panel
adminnameenter.add(newAdminName);
typeadminname.add(adminName);
adminlastnameenter.add(newadminlastname);
typeadminlastname.add(adminlastname);
buttonaddadmin.add(addadmin); 
//add things to big jPanel
BigPanel.add(adminnameenter);
BigPanel.add(typeadminname);
BigPanel.add(adminlastnameenter);
BigPanel.add(typeadminlastname);
BigPanel.add(buttonaddadmin);
//add things to frame
aFrame.add(BigPanel);

唯一弹出的是一个框架,上面写着添加管理员

将以下代码添加到函数的末尾:

aFrame.setVisible(false);
aFrame.setVisible(true);

或者把

aFrame.setVisible(true);

在函数的末尾而不是开头。

并且所有组件都将出现。这是因为每当您将任何内容更改为 JFrame 时,只有在被告知调整大小或刷新框架后,它只会在用户端更改。此外,您不需要将每个组件都放在它自己的 JPanel 中,您可以简单地将它们直接插入您的 BigPanel 中(小吹毛求疵,但 bigPanel 中的 b,不应该大写,因为变量以非大写字母开头)。

还要看看布局管理器,它们可能对你的应用程序有用。

https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

最新更新