Так что это действительно сложно, мне потребовалось некоторое время, чтобы понять, что на самом деле происходит. Надеюсь, вы понимаете это лучше меня.
У меня есть класс Swing, который отображает графический интерфейс. В графическом интерфейсе у меня есть кнопка, а в классе Swing у меня есть метод, который вызывается всякий раз, когда я нажимаю кнопку.
Когда вызывается этот метод, я вызываю другой метод в объекте под названием «Менеджер». Затем метод в менеджере вызывает другой метод из класса «Core». Этот метод в Core устанавливает локальную переменную, а затем вызывает другой метод в Core, который сам вызывается.
Проблема в том, что, поскольку он вызывает себя сам, он никогда не останавливается, верно? И поскольку он никогда не останавливается, ничего не возвращается к первому методу в Core. И поскольку в этот метод ничего не возвращается, в Manager также ничего не возвращается. И поскольку этот метод никогда не вызывается, класс GUI никогда не получает ответ, что оставляет GUI замороженным.
Ужасно извините за грязное описание. Я не могу опубликовать код, к сожалению. Я надеюсь, что кто-то поймет мою точку зрения, у кого-то должна была быть та же самая проблема прежде.
Спасибо!
EDIT:
Я забыл упомянуть, что класс Core является потоком.