Я перебуваю на тій же позиції, що і в ОП - маючи застарілі програми для перекладу, але потрібно впроваджувати нові ідіоми та інтерфейси, які вони не підтримують. Найбільша з цих програм кілька разів була відремонтована з різних причин (покращити модульність, покращити структуру відправлення MVC та події тощо), тому я не зовсім проти переписувати код інтерфейсу. Тому я довго і наполегливо думав над цим питанням.
Однак деякі речі неможливо вирішити за допомогою Swing, не вкладаючи багато більше часу та зусиль на те, що по суті є застарілою технологією. Наприклад, окрім простих подій миші, нові пристрої з сенсорним екраном і їх не підтримує сам Swing. Надання компонента браузера на базі Swing аналогічно клопітно чи дорого, і в моєму випадку підхід javafx-in-swing не є варіантом, оскільки ускладнює обробку подій інтерфейсу користувача нетривіальними способами.
Я думаю, що він був старим і вірним свого часу, і якщо ваша платформа настільки ж незмінна, як і ваша база коду - очевидно, дотримуйтесь її. Але для того, щоб програма рухалася вперед до нових більш сучасних випадків використання, в моєму випадку, можливо, JavaFX 2+, можливо, буде рухатися вперед.
Як зауваження: одна зловживань у Swing, яку я хотів би зникнути в jfx - але ні, - це підхід "єдиний порядок до управління ними" для відправки подій у всіх інтерфейсах. Будь-який нетривіальний користувальницький інтерфейс потребує багаторівневої нарізки, щоб підтримувати інтерфейс користувача чітким та чуйним, а це залишає повністю для розробника додатків, щоб наткнутися на ті самі підводні камені, що так легко є недоліком API IMHO.