JPanel没有显示

时间:2013-11-17 06:54:27

标签: java swing jframe jpanel removeall

我有以下代码将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);

}

2 个答案:

答案 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();
}