首页 > 解决方案 > 如何以最佳方式合并隐藏/可见面板?

问题描述

我正在尝试创建一个每个人都可以做的界面,并且我打算尽可能地保留它。为此,我想要一个“例外”面板,让用户可以选择修改一些更复杂的数据字段。我的解决方案是添加一个按钮“例外”,该按钮将面板设置为可见--panel.setVisible(true)--,问题是界面保持其原始大小,当您按下“例外”时,您还需要手动调整窗口的大小,这样就可以看到现在面板已经存在了。

当“例外”面板隐藏或显示时,如何使窗口自动调整大小以便用户可以看到所有内容?

谢谢!

标签: java

解决方案


我想您正在使用 Swing,如果您只想将新面板尺寸添加到现有框架,我知道这可能会很棘手。这是我定义的切换功能,用于在对话框中显示/隐藏解释面板:

    private void moreExplanationEvent(ItemEvent event) {
        if (event.getStateChange() == SELECTED) {
            Dimension dim = this.getSize();
            explanationPanel.setVisible(true);
            pack();
            dim.height = dim.height + explanationPanel.getHeight();
            this.setSize(dim);
            this.setPreferredSize(dim);
            pack();
        } else if (event.getStateChange() == DESELECTED) {
            Dimension dim = this.getSize();
            dim.height = dim.height - explanationPanel.getHeight();
            explanationPanel.setVisible(false);
            this.setSize(dim);
            this.setPreferredSize(dim);
            pack();
        }
}

推荐阅读