在单个jframe上交换两个不同的分割窗格

时间:2014-06-08 14:16:57

标签: java

请大家好,我有两个分割窗格,比如窗格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).

1 个答案:

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