我用如下代码创建了一个应用,用以显示一个文本框
- 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