2009-12-19 140 views
7

這讓我瘋狂。當我在設計模式中爲我的窗口設置適當的大小時,它會忽略這個大小,並在編譯和運行時使用其他的東西。即使強硬我設置minimumSize和preferredSize它只是忽略了這個...爲什麼?我怎樣才能設置我自己的大小?NetBeans(Java Swing):設置窗口大小

+0

你是通過拖動鼠標來做到這一點,或者你正在設置一個屬性? – 2009-12-19 17:34:42

回答

6

即使你已經設置的大小與minimumSizepreferredSize,您可以根據設定的尺寸已經忘記調用Window.pack()在搖擺將調整組件(和它的所有子組件)。

在您設置了所有首選尺寸後,您可以在窗口中(或任何構建窗口)調用它。

或者,您可以使用Component.setSize()方法,但它可以使用comes with some caveats

+0

你能解釋一下這個打包電話()必須完成的地方嗎? – 2011-03-17 09:03:22

+0

當然,應該在UI組件的所有佈局(設置佈局,大小和位置)完成後調用'pack()'。這取決於你的佈局代碼的位置(通常在構造函數中)。 – Spoike 2011-03-18 06:10:41

1

您是否檢查過您是否確實設置了JFrame或包含的JPanel的大小?

你試過setSize

0

我在使用netbeans ide時發現自己處於類似的情況。我有以下線的讀操作,這有助於:

http://forums.netbeans.org/ptopic28011.html

好像Swing應用程序框架是在您的家目錄中的子文件夾中保存應用程序的窗口大小(適用於Windows,「應用程序數據」文件夾,對於Linux,在你的「〜/」home文件夾中)。

例如,對於我的應用程序'CrapApp',swing將一些最後窗口大小的信息保存到子文件夾「〜/ .CrapApp /」中,並保存到一個名爲「mainFrame.session.xml」的文件中。

所以無論我如何在設計器中重新調整窗口大小,運行時似乎都忽略了它,而是從此子文件夾中的首選項加載窗口大小。

所以我的解決辦法是刪除保存的設置子文件夾,例如,在我的情況,「RM -rf〜/ .CrapApp /」

然後問題消失,我可以重新大小內設計師和運行與這個現在可見的重新調整大小的窗口的應用程序。

這讓我想知道是什麼引發了這個問題。我注意到,只需在netbeans ide中運行應用程序並關閉它就不會生成子文件夾。

經過一番修改我的應用程序後,我注意到以下動作觸發了這個「〜/ .CrapApp /」子文件夾的生成。

  1. 將我的應用程序的「幫助>>關於」
  2. 出現
  3. 退出應用

而現在的「〜/關於對話框中單擊「關閉」按鈕。 CrapApp /「子文件夾重新出現。這個幫助/關於對話框是由netbeans ide自動生成的,所以我沒有真正修補它,但是這似乎是我的案例中的罪魁禍首。

也許它可能是NetBeans IDE中的一個錯誤,我使用的是一個稍微舊的版本(v6.8),這似乎大致來自您的原始帖子的時代。