我有一個內部包含JPanel的JFrame(使用Window Builder Pro時的默認內容)。在我的代碼中,我添加了一個新的JPanel,但外部的JFrame無法重新調整大小以容納新的組件。所以我必須手動拖動。添加新組件後自動更新JFrame大小
下面是截圖:
我怎樣才能讓這個不管我擺在那裏,JFrame中自動更新它的大小,以適應新的Swing組件?
我有一個內部包含JPanel的JFrame(使用Window Builder Pro時的默認內容)。在我的代碼中,我添加了一個新的JPanel,但外部的JFrame無法重新調整大小以容納新的組件。所以我必須手動拖動。添加新組件後自動更新JFrame大小
下面是截圖:
我怎樣才能讓這個不管我擺在那裏,JFrame中自動更新它的大小,以適應新的Swing組件?
上添加新的組件後,嘗試調用
frame.pack()
圍框上。包方法將根據其基礎組件的大小設置幀的大小。這實際上是Window類的方法,可here
如果沒有窗口/幀方便的引用,一個簡單的方法是後打電話到 SwingUtilities.getWindowAncestor()面板上的文檔它已被添加。
如何實現這WindowsBuilder我不能說,但在運行時,只需撥打pack
框架
重塑封閉原生窗口,框架或對話框以適應其內容的通常方法是pack
。見the example here。如果您需要訪問例如從輕量級的孩子,你可以得到它
JFrame topFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
對不起,我的意思是可見的JFrame,是的。 – Ciwan