日期:2014-05-20  浏览次数:20601 次

设置为FlowLayout后,组件不能设置size
Java code

public class Test3 extends JFrame{
    private JTextField textField;
    public Test3() {
        getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
        
        JComboBox comboBox = new JComboBox(new String[]{"1","2","3"});
//        comboBox.setSize(new Dimension(60,10));//doesn't work
        getContentPane().add(comboBox);
        
        textField = new JTextField();
        textField.setSize(100,50);//do not work either
        getContentPane().add(textField);
        textField.setColumns(10);
        this.pack();
        this.setVisible(true);
    }
    public static void main(String...args){
        new Test3();
    }
}



代码中的两处地方,JComboBox和JTextField不能改变size,请如在保证FlowLayout布局的情况下,怎么才能改变size?

------解决方案--------------------
既然使用布局管理了

那 size 是由布局管理器来控制了

你需要的设置控件的以下三个属性:
preferredSize
maximumSize
minimumSize
布局管理器会根据这三个属性,来计算控件的 size

只是不用布局管理器,即setLayout(null); 时
才需要自己设置 size
------解决方案--------------------
看来真记错了 = =!

记得加上这一句:this.setDefaultCloseOperation(3); 点关闭的时候,关掉程序