2010-01-10 68 views
2

我使用myFrame.setSize(Xsize,Ysize)設置JFrame大小,但它給我一個問題:這並沒有定義框架中的可用空間,但整個框架的大小(它包括Windows管理器的幀大小,它不總是相同的)。 有沒有什麼辦法通過定義可用的空間大小來定義JFrame的大小?可用的框架大小和Windows管理器的框架大小

回答

4

通常最好的方法是在frame的內容上設置PreferredSize(),然後調用pack()。

如果這是不可能的,那麼我認爲在窗口上調用getInsets()將獲取窗口管理器框架的大小,只要框架是完全可見的(您可能需要使用偵聽器並等待一個windowOpened )事件)。我實際上沒有在X上試過這個,但它絕對適用於Windows。該方法的缺點是框架出現,然後調整大小。你可以從屏幕上開始它,然後一旦你有了插入物,將它移動到一個可見的位置。

+0

我想你可以通過在調用setVisible之前調用pack()來避免看到調整大小(true) – 2010-01-10 19:44:58

+0

使用getInsets()取得了訣竅,非常感謝! – 2010-01-10 19:55:03