用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()之后,我将调用此函数。啊,您完全错过了添加网格布局的部分!非常感谢!