Смена JLabel немедленно - PullRequest
       1

Смена JLabel немедленно

2 голосов
/ 23 октября 2011

Мое приложение состоит из двух файлов классов, назовем их A и B. A является основным - тот, который выполняется, и главный класс файла jar.В AI определите JFrame, к которому я добавляю два JPanel: один из них состоит из JButtons и JLabels, а другой - графический, и реализован в B (B extends JPanel).

InУ BI есть метод, который может занять некоторое время, поэтому я хочу предоставить пользователю информацию о происходящем процессе;а именно, я бы хотел сказать пользователю, сколько осталось вычислений.Я хочу сделать это путем обновления JLabel в классе A. Однако, когда я пытаюсь это сделать, я получаю, что JLabel обновляется только после завершения метода, то есть вместо того, чтобы видеть, что он работает с 0% до 100%, я вижу только100%, все время.

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

Я проверил похожие вопросы, но мне кажется, что они задали что-то совсем другое.

Спасибо,

Рон.

1 Ответ

5 голосов
/ 23 октября 2011

У вас проблема с потоками. Ваш длительный процесс заключается в связывании основного потока Swing, EDT, предотвращении любого рисования, обновления компонентов или взаимодействия с пользователем. Вам необходимо выполнить длительный процесс в фоновом потоке, например, предоставляемом объектом SwingWorker. Сделайте это, и ваш графический интерфейс станет намного более отзывчивым.

Проверьте Параллельность в Swing , чтобы узнать больше об этой важной теме.

Если вам нужна более конкретная помощь, вам нужно будет предоставить больше информации и кода.

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