2011-06-24 66 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] ** –