Я новичок в java, но я бы подумал, что это довольно прямолинейно. Я показываю JDialog для пользовательского ввода при импорте данных из текстового файла, но диалог не отображается должным образом на других компьютерах.
На моем компьютере, если я запускаю программу из NetBeans или из командной строки, диалоговое окно отображается правильно. Если я запускаю программу на компьютере, на котором она должна работать, внутренняя часть диалогового окна не окрашивается - все, что я вижу, это граница диалогового окна, а затем экран за ним, где должны быть элементы управления. Этот компьютер работает под управлением XPSP2 и jre6 update 11.
Кто-нибудь знает, что может пойти не так?
TIA
Я предлагаю получить трассировку стека с помощью ctrl-break на консоли (ctrl- \ в Linux / Solaris) или с помощью jstack или jconsole.




Вы делаете всю свою работу, связанную с Swing, в Поток отправки событий? Если да, то уверены ли вы, что не блокируете этот поток или что-то в нем делаете медленно?
Нам нужно увидеть ваш код, чтобы быть уверенным, но, скорее всего, вы выполняете импорт в Поток пользовательского интерфейса из какого-то кода слушателя - поскольку вы используете поток пользовательского интерфейса, никакие события не обрабатываются, пока вы не вернетесь из слушателя.
Решение состоит в том, чтобы запустить новый поток для импорта, а затем инициировать события для обновления графического интерфейса.
Запустите программу через командный терминал, чтобы вы могли видеть, возникают ли какие-либо исключения из вашей программы.
Команда будет такой: java -jar pathtoyourjar.jar
Код работает в одном месте, но не работает в другом. Компьютеры не волшебство. Так что между двумя компьютерами должна быть какая-то разница. Это код графического интерфейса Swing. Три наиболее вероятных отличия:
Если что-то в соединении Java с видеооборудованием на двух машинах отличается, попробуйте выяснить, что именно. На вашем компьютере и на целевой машине установлены последние версии видеодрайверов и т. д.? Имеет ли целевая машина два монитора или какое-то другое различие в видеооборудовании, которое может привести к выполнению другого кода?
Различия между двумя компьютерами, например, JRE или ОС, могут привести к выполнению разного кода. Вы сообщили нам JRE и ОС для целевой машины: что насчет вашей машины? Можете ли вы найти третью машину или установить другую JRE, чтобы мы знали, машина это или JRE?
У вас могут быть разные стили Swing Look и Feel на двух машинах. Попробуйте по-другому взглянуть и почувствовать.
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
Просто упомяну, что проблема, вероятно, связана с вашим кодом, и ошибка, скорее всего, связана с вашим кодом, чем в библиотеках Swing, но это, по крайней мере, может помочь вам понять, почему все работает на одной машине, а не на другой.
На каком компьютере работает ваш (ОС и JRE)?