Главное, на что нужно обратить внимание - это RequestProcessor и RequestProcessor.Task.RequestProcessor - это пул потоков;RequestProcessor.Task - это задание.
Большая часть того, что делает RequestProcessor, аналогична тому, что ExecutorService теперь делает в JDK.Главное, что нелегко с JDK, - это создание задачи, которую можно перепланировать и запускать повторно.Это очень полезно, если, скажем, вы хотите выполнить какую-то работу после истечения времени ожидания, когда пользователь перестает набирать:обновите свои узлы по своему желанию.
Если вы делаете что-то, что касается компонентов Swing, не забывайте всегда запускать этот код с EventQueue.invokeLater (Runnable) - и никогда не использовать EventQueue.invokeAndWait () - это рецепт для взаимоблокировок.
Если у вас есть код, который иногда может вызываться в потоке событий, а иногда нет, у NetBeans есть простой способ обеспечить выполнение вашего кода в потоке событий: Mutex.EVENT.readAccess (новый Mutex.Action () {...})