当前位置: 代码迷 >> J2SE >> java swing 组件大小偶尔不能调整,该怎么处理
  详细解决方案

java swing 组件大小偶尔不能调整,该怎么处理

热度:10727   发布时间:2013-02-25 00:00:00.0
java swing 组件大小偶尔不能调整
我用如下代码创建了一个应用,用以显示一个文本框
Java code
    public static void main(String[] args) {        JFrame frame = new JFrame();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(500, 400);        frame.setVisible(true);        frame.setTitle("电话簿");                JTextField textField = new JTextField("hello,world");        textField.setColumns(1);        frame.add(textField);        textField.setBounds(10, 10, 300, 30);        //textField.setText( String.valueOf( textField.getColumns()) );                Font font = new Font("Comic Sans MS", Font.PLAIN, 15);        textField.setFont(font);    }

可现在遇到了个奇怪的问题,我在eclipse下调试时,有时文本框组件占满整个应用界面,有时又正常
通过不断的点击运行按钮我琢磨出个规律,第偶数号次运行时正常,也就是第2,4,6...次点击 run 按钮时组件大小显示正常。

谁能告诉我这是哪里的原因? 还是怪我人品值差?

------解决方案--------------------------------------------------------
frame 要预先设置成 无布局模式(或者说绝对定位布局)
frame.setLayout(null);
------解决方案--------------------------------------------------------
默认,里面控件随窗体变化而变化。
所以如果把窗体最大化了,那里面field也最大化了,就是楼主说的占满整个空间了。

frame.setResizable(false);
设置一下锁定窗体大小,这样就不会变化了;

或者将布局管理器设置为null
  相关解决方案