我有以下代码将JPanel添加到另一个JPanel,不显示ui。
我尝试将User_UI更改为JButton,但它也没有显示。
我犯了一个错误似乎很直接吗?
private void startActionPerformed(java.awt.event.ActionEvent evt) {
userArray = new User_UI[9];
for (int x = 0; x < 9; x++) {
User_UI tmp = new User_UI(); // JPanel Object
mainPanel.add(tmp); // Adding to a JPanel with GridLayout
}
validate();
}
我的user_ui类中有这个方法,我用它来更新JLabel。但是每次我执行该功能都是整个面板(mainPanel)将消失。
public void setID(final String id) {
System.out.println("ID SET to " + id);
this.id = id;
id_no.setText(id);
}
答案 0 :(得分:2)
在向其添加新组件后,必须在mainPanel上调用revalidate()
,因为这会告诉容器布局管理器重新布局所有组件。此外,主面板必须使用有助于即时添加组件的布局管理器(即,不是GroupLayout)。有时您还必须在重新验证后调用repaint()
,尤其是在删除组件的情况下。
答案 1 :(得分:0)
试试这个
private void startActionPerformed(java.awt.event.ActionEvent evt) {
userArray = new User_UI[9];
for (int x = 0; x < 9; x++) {
User_UI tmp = new User_UI(); // JPanel Object
mainPanel.add(tmp); // Adding to a JPanel with GridLayout
}
repaint();
}