Что я делаю не так в Java, чтобы получить это IllegalArgumentException? - PullRequest
0 голосов
/ 27 февраля 2009

Иногда я получаю исключение в JTextArea, которое я обновляю с помощью JTextArea.append () ...

java.lang.IllegalArgumentException: Invalid remove
    at javax.swing.JTextArea.replaceRange(Unknown Source)
    at sun.plugin.ConsoleWindow$24.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Есть ли что-то, что я мог сделать неправильно, что вызвало это исключение? Javadoc предполагает, что метод должен быть потокобезопасным.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2009

Document не предоставляет достаточно богатого интерфейса для использования в поточно-ориентированном режиме. У JTextArea в JDK7 будут удалены некоторые требования безопасности потоков. Придерживайтесь обновления компонентов Swing и текстовых объектов Swing в потоке диспетчеризации событий AWT (EDT).

1 голос
/ 27 февраля 2009

Проверьте это для очень полезного инструмента для проверки злоупотребления потоками в Swing: http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html

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