1)您可以指定JTextField的列数,例如:t = new JTextField("TextField",20);
2)借助GridBagConstraints参数:weightx和fill。
3)避免使用:
setPreferredSize(new Dimension(150,20));
setBounds(5,5,20,20);
示例:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class TestFrame extends JFrame{
public TestFrame(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
pack();
setVisible(true);
}
private void init() {
setLayout(new GridBagLayout());
JTextField f1 = new JTextField("text",10);
JTextField f2 = new JTextField("text");
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.WEST;
add(f1,c);
c.gridy = 1;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
add(f2,c);
}
public static void main(String... strings) {
new TestFrame();
}
}