java GridLayout 如何把控件放在指定的格子里,我不想按顺序放,要怎么做,各位帮忙一下,谢了!!!

解决方案 »

  1.   

    不好用就用GridBagLayout吧,直接定位
      

  2.   

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;import layout.TableLayout;public class Test {
        public static void main(String[] args) {
            JFrame frame = new JFrame();
            
            double f = TableLayout.FILL;
            double p = TableLayout.PREFERRED;
            double[][] size = {{0.33, 0.67}, {p, p, p, p, p}};
            TableLayout layout = new TableLayout(size);
            frame.setLayout(layout);
            
            frame.add(new JLabel("请输入room信息,多个字段使用','分割"), "0,0, 1,0");
            frame.add(new JLabel("添加坐标: "), "0,1, r");
            frame.add(new JTextField(""), "1,1");
            frame.add(new JLabel("Room's name: "), "0,2, r");
            frame.add(new JTextField(""), "1,2");
            frame.add(new JLabel("长宽高: "), "0,3, r");
            frame.add(new JTextField(""), "1,3");
            
            double[][] size2 = {{f, f}, {p}};
            JPanel panel = new JPanel(new TableLayout(size2));
            panel.add(new JButton("OK"), "0,0");
            panel.add(new JButton("Cancel"), "1,0");
            frame.add(panel, "0,4, 1,4");        // ---------------------- Frame's setting ----------------------//
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(320, 180);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    }
      

  3.   

    GridLayout好像 可能 不能实现吧。。必须按顺序装
      

  4.   

    可以随意放,你想空的地方就放 个 空 box就好了。
      

  5.   

    这个需求你可以观察下jdk1.6新出的grouplayout