import java.awt.*;
import javax.swing.*;
public class Test{
public static void main(String args[]){
TestFrame myFrame = new TestFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true);
}
}
class TestFrame extends JFrame{
public TestFrame(){
JLabel label = new JLabel("hello");
JPanel panel = new JPanel();
JPanel anotherPanel = new AnotherPanel();
panel.add(label);
getContentPane().add(panel,BorderLayout.SOUTH);
getContentPane().add(anotherPanel,BorderLayout.CENTER);
pack();
}
}
class AnotherPanel extends JPanel{
public AnotherPanel(){
setPreferredSize(new Dimension(200,200));
//setSize(200,200);
}
}
请问,用setSize(200,200);为什么不可以?而用上面那句却可以?
解决方案 »
- jdbc无法连接数据库,相当诡异
- 求java的来龙去脉!!!
- 正则求助
- suse linux 下,执行 Runtime.getRuntime().exec(cmd) 不成功
- java NIO中有句话不懂,请问是什么意思?
- 各位大侠问个冒泡排序的问题!本人菜鸟
- 在jdk1.3中有什么办法替换jdk1.4的replaceAll的方法?
- 初学者问:J2sdk(jdk).J2SE J2EE J2ME 及JBuilder之间的关系?
- File类使用相对路径默认的根路径是src还是项目的根路径?
- 求大神,java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
- java怎么判断数组里面是NULL
- hibernate 使用联合查询的时候报空指针异常
而setPreferredSize()方法则会告诉布局管理器如果可以的话,请将该组件的大小设为200,200,因此只要设置的大小200,200大于组件的最小尺寸,布局管理器就会使用推荐的尺寸200,200
setMinimumSize(Dimension minimumSize)
setPreferredSize(Dimension preferredSize)
这些函数,但是要达到跨平台还是很难的,在绘制控件的时候,布局管理器只是参考以上设置,实际设置由布局管理器决定。你要用setSize要么就把布局管理器设为null。