import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TxzRun {
public static void main(String[] args) {
JFrame jframe = new JFrame("窗体");
jframe.setBounds(8, 8, 21 * 48, 14 * 48 + 33);
jframe.setVisible(true);
JPanel panel = new JPanel();
panel.setBackground(Color.red);//设置panel的背景色为红色
panel.setLayout(null);
jframe.setContentPane(panel);
System.out.println(panel.getHeight()+" "+panel.getWidth());
}
}
显示窗体的时候panel变成了红色,但打印的结果为什么是 0 0呢?
------解决方案--------------------
囧~~~原因是UI生成需要时间,没记错的话JAVA默认是用线程处理UI的,也就是说jframe.setContentPane(panel);这句只给线程安排了绘图任务,没执行完就直接进下句打印了,对象还没来得及更新的
------解决方案--------------------