2010-06-22 231 views
0

我使用的是Netbean的表單創建器,我嘗試了一些東西。我不確定它是否是佈局管理器,但是當我創建自己的JPanel並將其添加到我的窗口的主內容窗格時,面板的大小始終在FrameView內部最大化,而不管使用何種重新標註方法如setSize或setPreferred大小。我對AWT和Swing很陌生。如何設置JPanel大小?

+0

您使用的是什麼佈局管理器? – Xorty 2010-06-22 18:35:40

回答

2

使用NetBeans所見即所得的設計器,它是一個和平的蛋糕 - 只要確保使用Free Form Design並使用鼠標調整大小。也許面板本身比FrameView大,所以雙擊它(你正在編輯它),並使其更小。比雙擊回到父組件,你應該沒問題。

或者可能在NetBeans site上查看一些教程。

-1

以我的經驗,Swing是一件非常挑剔的事情。我會嘗試setMaximumSizesetPreferedSize。作爲一個側面說明:雖然我曾經使用過GridLayout,它總是延伸每個單元格中的任何內容(爲了使它對稱我猜)。流,框,邊框,我認爲GridBag沒有這個問題。

-Brett

+0

setPreferredSize是您想給佈局管理器的提示。 – 2010-06-22 19:28:54

2

你不應該手動設置大小。將其留給佈局管理器,當窗口大小或字體甚至按鈕標籤更改時,GUI不會中斷。

與的訣竅是,你可以使用不只一個,但幾個,嵌套JPanel s。這樣,幾乎任何佈局都是可能的。

+0

比嵌套廣告無窮無敵(或者是那個廣告無聊),要使用面向桌面的佈局管理器(http://www.google.com/search?q=table-oriented+layout+manager)作爲您的主要佈局管理器。 – 2010-06-22 19:53:14

+1

@Software Monkey:我肯定不會說這是一個更好的方法;它取決於GUI的要求。對於類似於表單的數據輸入UI,面向表格的佈局是很好的。但並不是所有的用戶界面都是這樣,即使這樣,嘗試使用單一佈局管理器的一切工作也不是一個好主意。 – 2010-06-22 20:00:37

+0

好的,謝謝邁克爾。你在說我不應該混淆根窗格,並且我應該添加控件到佈局管理器控制窗格,這些控件應該具有像我期待的相對位置。 我只是將編輯控件拖到子窗格中作爲測試,並將其展開到其父窗格中。我不知道屬性控制這種行爲,但更多的信息將不勝感激。 – chaz 2010-06-22 21:48:51

0

發生這種情況是因爲JPanel容器的佈局管理器(可能是JFrame或另一個JPanel)指示JPanel最大化。

執行以下操作:

  1. 瞭解,這是誰的JPanel的父(看看的NetBeans的包容對象樹)

  2. 檢查,什麼佈局的容器

    定義
  3. 閱讀LayoutManager的(他們在java.awt包)

  4. 的文檔???

  5. 利潤!