我没有按照我希望的方式得到它。我希望所有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);
答案 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();