JDialog не рисует - PullRequest
       20

JDialog не рисует

1 голос
/ 05 января 2009

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

На моем компьютере, если я запускаю программу из NetBeans или из командной строки, диалоговое окно отображается правильно. Если я запускаю программу на компьютере, на котором она должна быть запущена, то внутренняя часть диалогового окна не отображается - все, что я вижу, - это граница диалогового окна, а затем экран позади него, где должны находиться элементы управления. Этот компьютер работает под управлением XPSP2 и jre6 с обновлением 11.

Кто-нибудь знает, что может пойти не так?

ТИА

Ответы [ 4 ]

1 голос
/ 05 января 2009

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

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

0 голосов
/ 05 января 2009

Код работает в одном месте, но не в другом. Компьютеры не волшебство. Так что между двумя компьютерами должна быть какая-то разница. Код представляет собой графический код Swing. Три наиболее вероятных различия:

  • Различное видеооборудование
  • Другой код (возможно, библиотеки JRE)
  • Разный Swing Look and Feel (возможно, вызванный разными ОС)

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

Различия между двумя компьютерами, например, JRE или ОС, могут приводить к выполнению другого кода. Вы сказали нам JRE и ОС для целевой машины: как насчет вашей машины? Можете ли вы найти третью машину или установить другую JRE, чтобы мы знали, является ли она машиной или JRE?

У вас могут быть разные Swing Look и Feel на двух машинах. Попробуйте по-другому выглядеть и чувствовать.

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

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

0 голосов
/ 05 января 2009

Запустите программу через командный терминал, чтобы вы могли увидеть, генерируются ли какие-либо исключения вашей программой.

Команда будет выглядеть так: java -jar pathtoyourjar.jar

0 голосов
/ 05 января 2009

Вы выполняете всю свою работу, связанную с Swing, в ветке рассылки событий ? Если это так, вы уверены, что не блокируете этот поток или делаете что-то медленное?

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