我有几个JPanel,包含我想在主JFrame之间切换的按钮,标签等。目前,我正在尝试使用this.add(JPanelname);
方法,this.remove(JPanelname);
使用validate();
和repaint();
方法
问题是它会将面板添加到JFrame
,但不会将其删除。我不确定究竟是怎么回事。
答案 0 :(得分:1)
也许您应该使用Card Layout。
或许你应该使用模态JDialogs。因此,无论何时单击“widjet”,都会显示一个新窗口。然后,当您关闭对话框时,您将返回主框架。
答案 1 :(得分:0)
如果您经常在JPanel之间切换,那么JTabbedPane可能是正确的选择。添加或删除JPanel时,无需调用“validate”或“repaint”。你有安装布局管理器吗?您是否确保仅在UI事件线程中调用添加/删除?此外,通常一个不会调用“validate()”而是“invalidate()”来使容器无效以进行更新。