我有2个jpanels,一个用作另一个的标头。我想隐藏带有内容的面板,并在单击标题时将标题向下移动(例如最小化)。我可以隐藏面板,但是不能更改另一个面板的位置。这是代码:

 private void dbStatsLabelMouseClicked(java.awt.event.MouseEvent evt)     {
    if (report1Panel.isVisible()) {
        report1Panel.setVisible(false);
        Point p = reportHeaderPanel.getLocation();
        p.y = p.y + 100;
        reportHeaderPanel.setLocation(p);
    }
}

最佳答案

您可以删除(然后在需要时添加)report1Panel而不是将其隐藏(然后重新验证父组件)-行为现在取决于布局。如果提供“自动调整大小”,则“标题”组件应扩展到父级大小。

其他解决方案是将report1Panel的大小-水平或垂直-设置为零。再次在这里-您应该提供“自动调整大小”功能

正如@StanislavL所提到的,您可以将JSplitPane与标题点击事件一起使用:

splitPane.setDividerLocation(0); //or
splitPane.setDividerLocation(1.0);

07-26 05:19