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呢?
有道理。
那有没有什么方法能获取到呢?? 我写了个方法,方法的参数是JPanel类型,方法体里需要得到panel的大小,每次传参的时候,获取的大小都是0。。
import java.awt.Color;import javax.swing.JFrame;
import javax.swing.JPanel;public class TxzRun { public static void main(String[] args) {
JPanel panel = new JPanel();
panel.setBackground(Color.red);// 设置panel的背景色为红色
panel.setLayout(null);
JFrame jframe = new JFrame("窗体");
jframe.setBounds(8, 8, 21 * 48, 14 * 48 + 33);
jframe.setContentPane(panel);
jframe.setVisible(true);
System.out.println(panel.getHeight() + " " + panel.getWidth());
}
}改成这样应该可以
setVisible(true);
的时候会把界面上所有的当前已知的需要显示的控件初始化完成
只要是在
setVisible(true); 之前
加到界面上的控件的大小应该都可以正确获得