Изображение не может обновить другие компоненты (MVC) - PullRequest
1 голос
/ 31 марта 2011
import java.awt.event.ActionListener;
import java.util.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;

У меня есть несколько других фреймов (два - просто цифры, а другой - полоса прокрутки). Я могу использовать другие компоненты для обновления этого представления (это в основном отображает окно изображения на основе шкалы температур). Точно так же я могу обновить другие компоненты из этого представления.

Однако (отредактировано), полоса действительно перемещается, но изображение остается тем же .... Кто-нибудь может увидеть ошибку? Я ценю любой вклад в это / Спасибо!

1 Ответ

2 голосов
/ 31 марта 2011

Поскольку вы заменяете метку, вам нужно remove() компонент и validate() Container.В качестве альтернативы просто замените значок.

Добавление: я думаю, что последний подход предпочтительнее.Не имея ваших изображений и оставшегося кода, давайте начнем с этого примера : инициализируем метку и ползунок:

final JLabel label = new JLabel(pig);
final JSlider slider = new JSlider();

Затем в слушателе используйте setIcon():

@Override
public void stateChanged(ChangeEvent e) {
    if (slider.getValue() < 50) {
        label.setIcon(pig);
    } else {
        label.setIcon(dog);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...