注意看他的输出结果
显示大小为
150 150
160 160
而我不要setResizable(false)后,
输出为
150 150
150 150
谁解释一下为什么设置了Resizable()后增加了10个像素
更奇怪的是我在学校做的时候却只增加2个像素
public class Testing extends JPanel
{
public Testing()
{
this.setPreferredSize(new Dimension(150,150));
}
public static void main(String[] args)
{
JFrame f = new JFrame();
Container cp = f.getContentPane();
Testing t = new Testing();
cp.add(t,BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
System.out.println(t.getSize());
f.setResizable(false);
f.setVisible(true);
System.out.println(t.getSize());
}
public void paint(Graphics g)
{
super.paint(g);
g.fillRect(0, 0, 150, 150);
}
}
------解决方案--------------------
这才知道你那个Testing继承的是JPanel,我还以为是JFrame呢
我没办法让它们相等起来,没辙了~~~