0

我有 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);
    }
}
4

1 回答 1

1

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

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

正如@StanislavL 提到的,您可以JSplitPane在标题单击时使用事件:

splitPane.setDividerLocation(0); //or
splitPane.setDividerLocation(1.0);
于 2012-12-12T11:54:05.873 回答