На самом деле я не отвечаю на свой вопрос, но хочу поблагодарить тех, кто ответил, и задать один или два последующих вопроса.
Рогаш прокомментировал, что если бы я только создавал GUI на EDT, я был бы в порядке, но это не совсем соответствует строгой интерпретации правила?
Дополнительные потоки создаются в EDT, но они по-прежнему являются отдельными потоками.
Хотя может быть желательным несколько лучшее разделение графического интерфейса пользователя и интерфейса связи, я ожидаю, что это значительно усложнит основной код графического интерфейса пользователя, поскольку ему придется определить, из какого окна возникли различные события, а затем обновить правильное окно, не говоря уже связь между различными потоками и основным потоком GUI. Возможно, я преувеличиваю эту трудность (я еще не придумал и не задумывался над тем, как ее кодировать), но она может показаться более сложной. Каждый из потоков / JFrame уже имеет несколько массивов JToggleButton (30 элементов), вызывающих потенциальные события, и около 10 массивов JTextField с тем же числом элементов, требующих обновления.
Конечно, если мой метод небезопасен, мне придется его изменить, и это все!
На самом деле, мне интересно, может быть, мне лучше оставить вещи такими, какие они есть, и использовать мьютекс или семафор, чтобы убедиться, что только один поток одновременно обращается к методам Swing. На самом деле никаких длительных действий пользователя или каких-либо других действий занимает много времени, просто принимается много пакетов TCP или UDP, которые требуют обновления экрана.
Еще раз спасибо
Стив
PS Я пытался зарегистрироваться на этом форуме, но я думаю, что это обсуждение останется с моей незарегистрированной персоной.