关于Java中GridBagLayout的问题

时间:2010-06-27 18:25:51

标签: java swing layout

当我使用GridBagLayout时,无论何时调整窗口大小,组件位置都会更改为适合的新大小..

现在我想在事件之后更改组件的位置(比如鼠标点击任何按钮),直到组件离开窗口(就像Visual Studio 2008中的属性或工具箱窗口一样),我这样做,但是当我改变窗口的大小时,这个组件移动到我不想要的最后一个位置。

当我通过GridBagLayout将组件放在JFrame上时,我使用了gridx和gridy。创建窗口后,我可以使用什么来更改此位置?

1 个答案:

答案 0 :(得分:2)

我不知道Visual Studio的功能。但听起来好像你想在某些情况下控制组件的位置远离布局管理器。

为此,我建议使用分层窗格。您的面板成为普通图层。最重要的是一个玻璃窗格,没有布局管理器(或专家)。当您开始移动组件时,将其从底层移除并将其添加到玻璃窗格中。

一种变化是将所有组件添加到上层。对于每个组件,使用网格包布局将代理组件添加到较低层。通常,代理会更新实际组件的位置以响应更改,但允许它被破坏。