Java 移除JPanel内部的组件后,没有显示任何内容

Java 移除JPanel内部的组件后,没有显示任何内容,java,swing,jpanel,Java,Swing,Jpanel,嗨,我有一个JPanel,里面有很多JPanel。当用户更改内部面板中的数据时。我需要刷新外部面板;我删除了所有内部面板并添加了新的内部面板。我的问题是刷新后没有显示内部面板。如果我使JFrame最小化然后最大化,它将显示刷新面板。有人能告诉我如何解决这个问题吗。提前谢谢 这是我要删除和添加新JPanel的代码 private void getListCommentPane(){ //sortPage Component[] components = jpListCom

嗨,我有一个JPanel,里面有很多JPanel。当用户更改内部面板中的数据时。我需要刷新外部面板;我删除了所有内部面板并添加了新的内部面板。我的问题是刷新后没有显示内部面板。如果我使JFrame最小化然后最大化,它将显示刷新面板。有人能告诉我如何解决这个问题吗。提前谢谢

这是我要删除和添加新JPanel的代码

private void getListCommentPane(){

      //sortPage

     Component[] components = jpListCommentPane.getComponents();
        for (Component component : components) {
            jpListCommentPane.remove(component);
            jpListCommentPane.validate();
        }

      ArrayList<CommentItem>sortComment= lstComment;
     Collections.sort(sortComment,CommentItem.sortPage);
     for(CommentItem comm: sortComment){
                    //The class DivCommentJPane extends JPanel
         DivCommentJPane d=new DivCommentJPane(comm, this);
         jpListCommentPane.add(d);

     }  

     jpListCommentPane.repaint();

 }
private void getListCommentPane(){
//分拣页
Component[]components=jpListCommentPane.getComponents();
用于(组件:组件){
jpListCommentPane.remove(组件);
jpListCommentPane.validate();
}
ArrayListsortComment=lstComment;
Collections.sort(sortComment、CommentItem.sortPage);
对于(CommentItem comm:sortComment){
//类DivCommentJPane扩展了JPanel
DivCommentJPane d=新的DivCommentJPane(comm,this);
jpListCommentPane.add(d);
}  
jpListCommentPane.repaint();
}

删除组件并将其添加到
jpListCommentPane
后,请尝试调用
jpListCommentPane.revalidate()
,而不是
jpListCommentPane.repaint()
,最后一次,再执行一次。应该不需要调用
jpListCommentPane.validate()尤其是从循环中


revalidate
将指示容器需要执行布局并更新其联系人层次结构

根据您的描述,在添加新组件时,面板似乎不会自动重新验证。在将所有内部面板添加到父面板后,尝试显式调用它。尝试调用
jpListCommentPane.revalidate()
而不是
jpListCommentPane.repaint()
,最后一次,再执行一次。应该不需要调用
jpListCommentPane.validate()尤其是从循环中:P@MadProgrammer谢谢,这很有效。如何将您的评论标记为答案?