В настоящее время я работаю над проектом Java, и у меня возникла проблема с ошибкой переполнения стека. Происходит следующее: сначала программа читает файл из 1 500 000 слов и добавляет его в массив. Затем он читает небольшой файл из 600 слов и добавляет его в массив. Он проверяет, сколько слов в файле из 600 слов содержится в другом файле. Каждое слово в большом файле связано с числом. Поэтому, когда он находит слово в большом файле, он берет копию слова и связанного с ним целого числа и добавляет его в массив. Моя проблема в том, что я получаю ошибку переполнения стека:
"AWT-EventQueue-0" java.lang.StackOverflowError
Дело в том, что когда маленький файл составляет около 200 слов, программа работает нормально.
Последняя строка, которую должна выполнить программа:
result.setPage("file:file for gui NEW.html");
(где результат - JEditorPane)
По какой-то причине я получаю ошибку переполнения стека, когда небольшой файл состоит из 600 слов, но работает нормально, когда он содержит 200 слов. Он запускает последнюю строку и создает этот файл, но не выводит его на панель редактора, поскольку это происходит при возникновении исключения.
Может ли кто-нибудь помочь мне сказать, почему это может произойти и как я мог это исправить?
Спасибо.
Ошибка в консоли полностью:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at sun.awt.SunToolkit.getSystemEventQueueImplPP(Unknown Source)
at sun.awt.SunToolkit.getSystemEventQueueImpl(Unknown Source)
at java.awt.Toolkit.getEventQueue(Unknown Source)
at java.awt.EventQueue.isDispatchThread(Unknown Source)
at javax.swing.SwingUtilities.isEventDispatchThread(Unknown Source)
at javax.swing.JComponent.revalidate(Unknown Source)
at javax.swing.plaf.basic.
BasicTextUI$RootView.preferenceChanged(Unknown Source)
at javax.swing.text.View.preferenceChanged(Unknown Source)
at javax.swing.text.BoxView.preferenceChanged(Unknown Source)
at javax.swing.text.View.preferenceChanged(Unknown Source)
at javax.swing.text.BoxView.preferenceChanged(Unknown Source)
at javax.swing.text.View.preferenceChanged(Unknown Source)
at javax.swing.text.BoxView.preferenceChanged(Unknown Source)
(... repeating forever ...)
РЕДАКТИРОВАТЬ: Таким образом, в принципе кажется, что два элемента управления в GUI продолжают вызывать метод preferenceChanged()
друг друга.
Похоже, что графический интерфейс наиболее вероятен, потому что когда я запускаю программу без графического интерфейса и печатаю содержимое файла на консоль, вместо этого он работает нормально. Я понятия не имею, что на самом деле вызывает проблему. Я не использую предпочтения, изменил рутину. Только причины, такие как setSize (), setVisible () и т. Д. Могли бы вызвать это?