布局无法按需工作

Layout not working as needed

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

    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);

首先,

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

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

根据您的代码:-

    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();