请大家好,我有两个分割窗格,比如窗格A和窗格B,我在窗格A上放了一个按钮,如果单击该按钮,则窗格A被隐藏,窗格B变得可见,但每次我尝试做我得到一个错误,上面写着:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Do not use this method
at net.java.dev.designgridlayout.DesignGridLayoutManager.removeLayoutComponent(DesignGridLayoutManager.java:122).
答案 0 :(得分:1)
描述绝不足以给出深刻的答案。但基于documentation of the method that causes the error,似乎不支持从这种布局中删除组件。
您可以使用其他布局管理器。也许CardLayout可能会有所帮助。有疑问,应该总是可以引入一个额外的容器。我会尝试在这里描绘这个想法,虽然没有人知道你的代码是什么样的:
class GUI {
private JPanel containerA = new JPanel(new GridLayout(1,1));
void init() {
...
// Here "grid" is the component that has the DesignGridLayout:
grid.add(containerA);
containerA.add(splitPaneA);
}
void whenTheButtonIsClicked() {
containerA.removeAll();
containerA.add(splitPaneB);
containerA.revalidate();
}
}