Я не знаю, что вы подразумеваете под "просто умирает".
- Будет ли пользовательский интерфейс по-прежнему перерисовываться, если вы перетаскиваете его за край экрана, а затем снова в него?
- Весь процесс в конечном итоге неожиданно завершается?
- Весь ли процесс немедленно неожиданно завершается?
Предполагая, что пользовательский интерфейс все еще работает, когда вы нажимаете кнопку, и кажется, что ничего не происходит, еще один простой способ диагностировать, что может быть не так, - отслеживать использование процессора и памяти этим процессом. Диспетчер задач (или, лучше, Process Explorer), если вы находитесь в Windows; ps
если вы знакомы с Unix (и, возможно, с Mac). Сначала проверьте, сколько ЦП использует этот процесс.
Если это 0%, то у вас, вероятно, есть что-то мягкое, например, кнопка без слушателя (и, следовательно, нажатие на нее не имеет никакого эффекта).
Если это 100%, то у вас, вероятно, какая-то бизнес-логика работает как безумная, возможно, в бесконечном цикле. На две вещи стоит обратить внимание: во-первых, проверьте использование памяти и посмотрите, будет ли она расти; ошибка может приводить к созданию большого количества объектов, и в конечном итоге вам не хватит памяти. Невозможно сказать наверняка, не зная, что делает код. Вторая вещь упоминается выше: перетащите пользовательский интерфейс за экран, а затем обратно. EDT Java (Thread Dispatch Thread) отвечает за обработку всех событий пользовательского интерфейса, включая перерисовку пользовательского интерфейса, когда он становится видимым; если он этого не делает, то вы знаете, что в EDT работает что-то, чего не должно быть, не позволяя ему дойти до выполнения таких операций, как перерисовка. Насколько я знаю, бизнес-логика работает просто отлично, но занимает некоторое время и затягивает EDT.
(Если это чуть меньше 50%, 33%, 25% и т. Д., Значит, вы работаете на машине с несколькими процессорами; см. 100% выше ...)
Однако из вашего описания (а именно, «журналы только что заканчиваются») звучит так, будто ваш пользовательский интерфейс или бизнес-логика ждут чего-то, что никогда не придет, поэтому у вас будет 0% ЦП в этом процессе. В любом случае стоит проверить, так как это быстро и может предотвратить ненужную охоту на насекомых в неправильном месте.