我不明白如何使用相同的JLabel变量来创建新标签。这里的aLabel变量不是指相同的单个对象(标签)。那么我们如何获得4个标签呢?
我可以使用其他类对象还是仅使用组件类来做到这一点?
在此处逐步解释执行代码的流程将很有帮助。
JLabel label1 =newJLabel("First label");
add(label1, BorderLayout.NORTH);
JLabel label2 =newJLabel("Second label");
add(label2, BorderLayout.SOUTH);
JLabel label3 =newJLabel("Third label");
add(label3, BorderLayout.CENTER);
或者我可以只使用:
JLabel aLabel =newJLabel("First label");
add(aLabel, BorderLayout.NORTH);
aLabel =newJLabel("Second label");
add(aLabel, BorderLayout.SOUTH);
aLabel =newJLabel("Third label");
add(aLabel, BorderLayout.CENTER);
最佳答案
在这种情况下,aLabel只是对内存中对象的引用。当您这样做时:
aLabel = newJLabel("Second label");
您正在更改引用以指向与第一个标签完全不同的对象。从本质上说,这是“把东西放在等式的右边,并用Label指向它。”然后,当你打电话
add(aLabel, BorderLayout.SOUTH);
实际上,您添加的对象与第一次调用时完全不同。
在另一种情况下,您只需为每个对象创建一个新引用。