用Java生成jLabel代码

用Java生成jLabel代码,java,arrays,swing,user-interface,jlabel,Java,Arrays,Swing,User Interface,Jlabel,有人能解释一下为什么我的代码似乎不起作用吗?此代码的结果是一个空屏幕 尽管我的标签数组包含所有正确的标签。我可能错过了什么,但找不到什么。。。。提前谢谢 //create the array private static JLabel[] labels = new JLabel[135]; private void setup(){ for(int i = 0; i < labels.length; i++){ int x; int y = 0; in

有人能解释一下为什么我的代码似乎不起作用吗?此代码的结果是一个空屏幕

尽管我的标签数组包含所有正确的标签。我可能错过了什么,但找不到什么。。。。提前谢谢

 //create the array
private static JLabel[] labels = new JLabel[135];

private  void setup(){

  for(int i = 0; i < labels.length; i++){
    int x; 
    int y = 0;
    int z = 0;
    int r;
    z++;
      if (z == 16) {
          z=0;
          y += 40;
      }
    x = 40*z+40;

    labels[i] = new JLabel("foo");
    labels[i].setText("test");
    labels[i].setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0,0,0)));
    labels[i].setMaximumSize(new java.awt.Dimension(32, 32));
    labels[i].setMinimumSize(new java.awt.Dimension(32, 32));
    labels[i].setPreferredSize(new java.awt.Dimension(32, 32)); 
    labels[i].setLocation(x, y);

    this.add(labels[i]);
    //this.setVisible(true);

  } 
  //this.pack();
  //this.rootPane.add(this);

}
//创建数组
私有静态JLabel[]标签=新JLabel[135];
私有无效设置(){
对于(int i=0;i
这说明了如何将JLabel添加到JFrame

本教程中的以下片段可能是您的问题所在:

现在我们已经创建了JLabel,需要将其添加到JFrame中:

frame.getContentPane().add(textlab,BorderLayout.CENTER)


答案取决于内容窗格(您没有发布)使用的布局管理器

将标签添加到
JFrame
中,如下所示:

this.add(labels[i]);
JFrame.add()
重定向到内容窗格的
add()
方法,默认情况下,该方法是带有
BorderLayout
布局管理器的
JPanel
。对此调用
add()
,将组件添加到中心。添加另一个组件将替换先前添加的组件

因此,您最终得到了一个
Jrame
,它的中心只添加了1个
JLabel
。由于面板具有布局管理器,因此不应在其子面板上调用
setLocation()

您可以使用
null
布局(绝对定位组件),因为您没有发布所有代码,所以您可以正确地定位组件,也可以不正确地定位组件


或者使用一个适当的布局管理器,它允许您将许多组件添加到
容器
中,或者使用
容器
s中。

this.add中
这个
是什么。添加(标签[i])
?公共类WinkelScherm扩展了javax.swing.JFrame{}我使用的类是一个JFrame类,这将引用JFrame。在initializecomponent()之后,我将调用此函数。啊,您完全错过了添加网格布局的部分!非常感谢!