所以我有一个jFrame对象,后面又附加了3个JPanel。 这些JPanels位于NORTH,CENTER,SOUTH。 我在CENTER和SOUTH中添加了一些按钮和标签。
我在NORTH和CENTER的一些字段集中添加了一个更漂亮的外观。 现在,当我尝试运行程序时,它没有显示任何内容。我的按钮和标签消失了,我的字段集无处可寻。 我做错了什么?
谢谢你的时间。
public General() {
super("OmniTool");
initComponents();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(300,100);
setVisible(true);
setResizable(true);
setSize(900, 700);
//radiobuttons ivm dependencies
ButtonGroup dependenciesInfo = new ButtonGroup();
dependenciesInfo.add(rdbYesDependencies);
dependenciesInfo.add(rdbNoDependencies);
//boolean om te controleren of alle textareas al ingevuld zijn
generalInfoComplete = false;
//creating 3 panels and add them on the same frame + giving them their location
JPanel oudeMod = new JPanel();
JPanel nieuweMod = new JPanel();
JPanel generate = new JPanel();
this.add(oudeMod,BorderLayout.NORTH);
this.add(nieuweMod,BorderLayout.CENTER);
this.add(generate,BorderLayout.SOUTH);
oudeMod.setBorder(BorderFactory.createTitledBorder("Use exisiting modfolder"));
nieuweMod.setBorder(BorderFactory.createTitledBorder("Create new modfolder"));
//adding buttons and textfields to proper panels
nieuweMod.add(jLabel2);
nieuweMod.add(jLabel3);
nieuweMod.add(jLabel4);
nieuweMod.add(jLabel5);
nieuweMod.add(jLabel7);
nieuweMod.add(jLabel8);
nieuweMod.add(jLabel9);
nieuweMod.add(jLabel10);
nieuweMod.add(btnBrowseMain);
nieuweMod.add(btnBrowseMods);
nieuweMod.add(btnDependencies);
nieuweMod.add(rdbNoDependencies);
nieuweMod.add(rdbYesDependencies);
nieuweMod.add(txtDependencies);
nieuweMod.add(txtMainDir);
nieuweMod.add(txtModName);
nieuweMod.add(txtModsDir);
generate.add(btnGenerate);
}
EDIT1:这些jFrame位于1 jtabbedPane。
答案 0 :(得分:1)
如果“this”是JFrame,则this.add(...)将无效。您应该将组件添加到JFrame的contentPane。
答案 1 :(得分:0)
“所以我有一个jFrame对象,它依次连接3个JPanel。这些JPanels放在NORTH,CENTER,SOUTH。我向CENTER和SOUTH添加了一些按钮和标签。”
每个BorderLayout
位置只能包含一个组件。如果您向JPanel
添加CENTER
,则只需将JButton
添加到CENTER
,只会添加最后添加的组件(JButton
)。
将您需要的任何组件添加到最多5个JPanel
,并将这些JPanel
放在不同的BorderLayout
位置。或者您可以使用不同的布局。或者您可以使用主JPanel
容器,只需将JPanel
添加到框架即可。你有很多选择。
在添加所有组件后,还要执行所有JFrame
内务管理。把它们放在构造函数的末尾。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(300,100);
setVisible(true);
setResizable(true);
setSize(900, 700);
不要设置大小。只需pack()
。 setVisible()
应该是你做的最后一件事。
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setResizable(true);
setVisible(true);