我现在用的是 BOXLAYOUT 布局管理器, 现在当改变窗口大小时, 我想里面的元素随着一起变化,比如某一个JTEXTFIELD自己改变宽度. 请问如何实现

解决方案 »

  1.   

    说的没错,除了有些适合于固定大小的组件,比如说按钮。下面是一个完整的测试代码:
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTextField;public class BoxLayoutTest extends JFrame {  private static final long serialVersionUID = -261878917749836545L;  public BoxLayoutTest() {
        super("BoxLayout Test");    this.setSize(640, 480); // 设置窗口大小
        this.setLocationRelativeTo(null); // 窗口屏幕居中
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗口关闭,则程序退出
        java.awt.Container container = this.getContentPane();
        container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));    JTextField tf1 = new JTextField();
        JTextField tf2 = new JTextField();
        JTextField tf3 = new JTextField();
        JTextField tf4 = new JTextField();
        JButton btn = new JButton("测试按钮");    container.add(tf1);
        container.add(tf2);
        container.add(tf3);
        container.add(tf4);
        container.add(btn);
      }  // 创建GUI
      private static void createAndShowGUI() {
        BoxLayoutTest xframe = new BoxLayoutTest();
        xframe.setVisible(true);
      }  public static void main(String[] args) {
        // 为事件处理线程安排一个任务:创建并显示程序的GUI
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            createAndShowGUI();
          }
        });
      }}