2013-10-19 39 views
0

當我在大小(640,480)的JFrame內添加JPanel時,JPanel的大小爲(638 449)。我需要的JPanel完全匹配的JFrameJFrame中的默認JPanel更小

一個臨時解決我發現是setUndecoratedJFrame爲true。看起來JFrame將像素帶走菜單欄和窗口周圍的邊框。

+0

除非框架是未經修飾的,這是不可能的面板相匹配的框架的確切大小,框架具有邊框和標題欄... – MadProgrammer

回答

3

不要設置框的大小。相反,你的代碼應該是:

frame.add(panel); 
frame.pack(); 
frame.setVisible(true); 

然後小組將在其preferred size顯示和框架還可以有它的裝飾。所以這意味着你需要設置面板​​的首選大小而不是其大小。

還是首選的方法是,如果你需要的面板有一個特定的尺寸覆蓋面板的getPreferredSize()方法。

+0

不能接受的答案,但是救了我很多時間,thx! – Vjeetje

+0

@Vjeetje這是正確的答案。設置undecorated也會做_exactly_你要求的,但基本上你不應該嘗試在Swing中這樣做。你將會違背Swing(佈局)的一個非常基本的功能。你沒有說你爲什麼需要他們具有相同的大小,但如果那是因爲你使用的是尺寸的東西,僅僅只用面板。如果你真的需要它們具有相同的尺寸,那麼設置undecorated是唯一的方法,但由於顯而易見的原因,這是不方便的。 – Radiodef