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);
唯一弹出的是显示添加管理员的帧
答案 0 :(得分:0)
将此代码添加到函数末尾:
aFrame.setVisible(false);
aFrame.setVisible(true);
或者放
aFrame.setVisible(true);
在函数的末尾而不是开始。
所有组件都会出现。这是因为只要您对JFrame进行任何更改,它都只会在被告知调整框架大小或刷新时才在用户侧更改。另外,您不需要将每个组件都放入自己的JPanel中,只需将它们直接插入到BigPanel中即可(小nitpick,但是bigPanel中的b不应大写,因为变量以非大写字母开头)。
还要研究LayoutManager,它们可能对您的应用程序有用。
https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html