我不明白如何使用相同的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);


实际上,您添加的对象与第一次调用时完全不同。

在另一种情况下,您只需为每个对象创建一个新引用。

10-07 18:48