布局无法正常工作

时间:2016-02-15 16:21:08

标签: java swing layout-manager

我没有按照我希望的方式得到它。我希望所有10个标签都以网格方式排列,但我不明白。请帮助我。enter image description here

    JFrame jf=new JFrame("Test me");
    GridLayout gl=new GridLayout(5,5,20,20);
    jf.setLayout(gl);
    jf.setSize(500, 500);
    jf.setVisible(true); 
    JLabel jp =new JLabel("ab");
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);
    jf.add(jp);

2 个答案:

答案 0 :(得分:3)

<强>首先,

你不能多次添加同一个组件,因为你指的是同一个对象......在这种情况下,jp总是引用同一个对象。多次添加同一个对象会使同一个对象具有不同的属性(即不同x和y坐标)同时..哪个不会发生..

如@null saint所述,您需要将JLabel添加到框架本身。 当我告诉你需要将JLabel添加到gridlayout时,我错了。

答案 1 :(得分:2)

根据您的代码: -

    JFrame jf=new JFrame("Test me");
    GridLayout gl=new GridLayout(5,5,20,20);
    jf.setLayout(gl);

    jf.setSize(500, 500);
    jf.setVisible(true);

    // create 10 new JLabel
    JLabel jp =new JLabel("ab");
    JLabel jp1 =new JLabel("ab");
    JLabel jp2 =new JLabel("ab");
    JLabel jp3 =new JLabel("ab");
    JLabel jp4 =new JLabel("ab");
    JLabel jp5 =new JLabel("ab");
    JLabel jp6 =new JLabel("ab");
    JLabel jp7 =new JLabel("ab");
    JLabel jp8 =new JLabel("ab");
    JLabel jp9 =new JLabel("ab");

    // add all 10
    jf.add(jp);
    jf.add(jp1);
    jf.add(jp2);
    jf.add(jp3);
    jf.add(jp4);
    jf.add(jp5);
    jf.add(jp6);
    jf.add(jp7);
    jf.add(jp8);
    jf.add(jp9);

    // Packs all components neatly in the Frame
    jf.pack();