JDialogBox не отображает содержимое с перерывами - PullRequest
1 голос
/ 28 января 2011

Добрый вечер, переполнение стека. У меня проблема с участием JOptionPanes. Время от времени они просто не отображают контент, который я им даю. И вот, чтобы проиллюстрировать мою проблему: Вот как это должно выглядеть: enter image description here

и так часто, вот что он отображает: enter image description here

вот вызов функции для создания объекта. "панель" - это просто JPanel с добавленными виджетами.

int a = JOptionPane.showConfirmDialog(null,panel,"Please enter result details",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);

Единственное, что сводит меня с ума, так это то, что это прерывисто, поэтому я понятия не имею, что вызвало это. Есть идеи?

1 Ответ

1 голос
/ 28 января 2011

Вы должны убедиться, что вы вызываете свой код обновления JOptionPane в потоке диспетчеризации событий. Компоненты Swing должны быть обновлены в EDT, чтобы обеспечить их правильную перекрашивание. Большинство проблем с неправильным обновлением заключается в том, что он не вызывается в EDT.

Если вы не уверены, находитесь ли вы в EDT, SwingUtilities.isEventDispatchThread () - хороший инструмент для отладки.

Редактировать: я пропустил, что был комментарий, который упомянул об этом, извините.

...