Java 摇摆:移动JPanel

Java 摇摆:移动JPanel,java,swing,location,jpanel,Java,Swing,Location,Jpanel,我有两个JPanel,一个用作另一个的头。我想隐藏包含内容的面板,并在单击标题时向下移动标题(如最小化)。我可以隐藏面板,但无法更改另一个面板的位置。代码如下: private void dbStatsLabelMouseClicked(java.awt.event.MouseEvent evt) { if (report1Panel.isVisible()) { report1

我有两个JPanel,一个用作另一个的头。我想隐藏包含内容的面板,并在单击标题时向下移动标题(如最小化)。我可以隐藏面板,但无法更改另一个面板的位置。代码如下:

 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);

您使用的是什么布局管理器?我使用的是“free layout”DYM a的“free layout”(在Netbeans中)1)或使用
组布局的“free Design”
?2) 为了更快地获得更好的帮助,请发布一个。3) 添加@MadProgrammer(或任何人)以通知某人新的评论。@Andrew Thompson我的意思是“自由设计”。问题是布局管理器正在决定组件应放置在何处,因此,尽管您设置了位置,但布局管理器已用正确的内容覆盖了此选择