Java gridbaglayout 使用带有可拖动 jpanel 的滚动窗格

Posted

技术标签:

【中文标题】Java gridbaglayout 使用带有可拖动 jpanel 的滚动窗格【英文标题】:Java gridbaglayout using scrollpane with draggable jpanel 【发布时间】:2016-01-26 09:34:42 【问题描述】:

我在带有滚动窗格的 jpanel 上使用 gridbaglayout,一切正常。稍后在我的代码中,我使用约束(x,y)将另一个 jpanel 添加到使用索引已经存在的所有其他内容之上的同一个面板,这也可以正常工作。这个添加的 jpanel 使用一个监听器让我拖动面板,它也可以工作,但我的问题是当我滚动或调整 jframe 的大小时,它会将 jpanel 放回我拖动它之前的位置。为什么?

【问题讨论】:

【参考方案1】:

这个添加的 jpanel 使用一个监听器让我拖动面板,它也可以工作,但我的问题是当我滚动或调整 jframe 大小时,它会将 jpanel 放回我拖动它之前的位置。为什么?

因为您使用的是布局管理器。当框架调整大小时,会调用布局管理器,并根据布局管理器的规则为组件分配大小/位置。

查看Drag Layout。它将允许您在面板周围拖动组件而无需重置组件的位置。

【讨论】:

我会调查一下,但如果我因为这个大声笑而不得不重做所有事情,那就太糟糕了。我以为我已经弄清楚了,直到我进入这一部分,谢谢。

以上是关于Java gridbaglayout 使用带有可拖动 jpanel 的滚动窗格的主要内容,如果未能解决你的问题,请参考以下文章

在 java 中使用 GridBagLayout 时设置最大组件大小

Java 的布局管理器GridBagLayout的使用方法图文说明

在 Java 中使用 GridBagLayout 时防止 Swing 组件偏离中心

Java GridBagLayout 不起作用

GridBagLayout Java 中的边距/填充

Java GridBagLayout组件不会到达指定位置