2010-06-27 74 views
2

当我使用的GridBagLayout,每当窗口大小的组件位置更改为适合新的大小..关于产品的GridBagLayout在Java中

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

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

+0

如果你不必“使用”GridBagLayout,我会建议看看MigLayout。 – javamonkey79 2010-06-28 05:09:52

+0

mmmm ..我搜索了一下MigLayout。这听起来有好处。 感谢您的建议:) – 2010-06-28 22:53:46

回答

2

我不知道什么是Visual Studio。但听起来好像您想在某些情况下控制组件布局的位置。

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

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

+0

非常感谢,我会搜索它:) – 2010-06-27 20:13:20

+1

@Farah_online:这是一个很好的起点:http://java.sun.com/docs/books/tutorial/uiswing/components/ rootpane.html – trashgod 2010-06-27 23:25:42