我创建了两个JLabel,并将其中一个添加到我的JFrame中,但当我将另一个分配给添加的JLabel时,JFrame不会更新
add(jLabel1);
jLabel1 = jLabel2;
我该如何解决这个问题?
答案 0 :(得分:6)
jLabel1 = jLabel2;
那不会将标签添加到框架中。
变量包含对象的引用。在赋值语句变量jLabel1和jLabel2之后,它们都包含对同一对象的引用。由于您的第二个标签尚未添加到框架中,因此两个变量仅引用内存中的对象。
您可以执行以下操作:
jLabel1.setText( jLabel2.getText() );
实际上确实不需要第二个标签存在。如果您想更改GUI中标签上的文字,您可以这样做:
jLabel1.setText("some text");
答案 1 :(得分:4)
在这一行:
add(jLabel1);
您正在向GUI添加jLabel1所指的对象。您没有将jLabel1 变量本身添加到GUI。
在这一行:
jLabel1 = jLabel2;
您正在更改jLabel1所指的对象。这对添加到GUI的原始对象有绝对没有影响。
解决方案是按照camickr的回答(1 +)