2011-06-24 105 views
2
JPanel scorePanel = new JPanel(); 
scorePanel.setBackground(new Color(95 , 8 , 248 , 255)); 
JLabel scoreLabel = new JLabel("Score : 0" ); 
scoreLabel.setForeground(Color.white); 
scoreLabel.setFont(new Font("Cambria" , Font.BOLD , 20)); 
scorePanel.add(scoreLabel); 
Dimension d =new Dimension(scorePanel.getSize()); 
System.out.println(d); 

此代碼段的輸出時與整個代碼一起運行是 - java.awt.Dimension中[寬度= 0,高度= 0]這是面板的實際尺寸嗎?

爲什麼會收到此輸出,當在scorepanel我有一個20號的標籤?是這個記事本的實際大小?

+0

我打包到一個容器後得到這個輸出。 –

+0

即使渲染框架? – mre

回答

3

不,它不是。一旦實現(即打包到一個容器中並渲染),組件的實際尺寸將變爲可用。

+0

'0,0'表示什麼?僅在打包到容器後才能得到此輸出 –

+2

佈局管理器未將大小設置爲(0,0)。創建組件時,所有組件的默認大小和位置均爲(0,0)。佈局管理器將在調用時確定適當的大小和位置,這基本上是在框架可見或調整大小或組件被驗證時。 – camickr

+0

是的,我得到的結果** java.awt.Dimension [width = 400,height = 35] ** –