Почему `jLabel1 = jLabel2` не меняет отображаемое значение? - PullRequest
0 голосов
/ 27 мая 2011

У меня есть два созданных JLabel и один из них добавлен в мой JFrame, но когда я назначаю другой для добавленного, JFrame не обновляется

add(jLabel1);
jLabel1 = jLabel2;

как я могу это исправить?

Ответы [ 2 ]

6 голосов
/ 27 мая 2011
jLabel1 = jLabel2; 

Это НЕ добавляет метку к рамке.

Переменная содержит ссылку на объект.После оператора присваивания переменные jLabel1 и jLabel2 будут содержать ссылки на один и тот же объект.Поскольку ваша вторая метка не была добавлена ​​во фрейм, обе переменные просто ссылаются на объект в памяти.

Вы можете сделать что-то вроде:

jLabel1.setText( jLabel2.getText() );

На самом деле в действительности нет необходимостивторой ярлык, чтобы существовать.Если вы хотите изменить текст на метке в графическом интерфейсе, вы просто сделаете:

jLabel1.setText("some text");
4 голосов
/ 27 мая 2011

В этой строке:

add(jLabel1);

Вы добавляете в GUI объект , на который ссылается jLabel1. Вы не добавляете переменную jLabel1 в GUI.

В этой строке:

jLabel1 = jLabel2;

Вы меняете объект, на который ссылается jLabel1. абсолютно не влияет на исходный объект, который был добавлен в GUI.

Решение в соответствии с ответом camickr (1 +)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...