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