2010-06-27 49 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