Я согласен с Уксусом: не исключаю Swing. Я разработал как с Swing, так и с SWT, но не с Qt. С Swing ваш код будет автоматически кроссплатформенным. С SWT ваш код кроссплатформенный с небольшими усилиями, хотя и не такими большими. Собираетесь ли вы реализовать локальное приложение, апплет или приложение Web Start?
Преимущество SWT состоит в том, что он использует все нативные виджеты. (знакомый стиль) Недостаток SWT состоит в том, что он использует все нативные виджеты. (не так много виджетов, как у Swing). Является ли это преимуществом или недостатком, зависит от того, что вы делаете и каковы ваши цели. Это означает, что у Swing больше виджетов. Тем не менее, SWT делает несколько вещей, которые Swing не делает (или вообще) - например, запускает системный браузер системы и выполняет сценарии JavaScript в этом браузере.
Если вы рассматриваете SWT, тщательно обдумайте это. Если у вас есть определенные потребности (например, выполнение JavaScript в окне браузера, которое было запущено вашим приложением), то это может быть вашим лучшим выбором. Однако, если Swing может полностью удовлетворить ваши потребности, это может быть лучшим выбором.
Надеюсь, кто-то еще может предоставить информацию о Qt Jambi.
Обратите внимание, что поддержка должна быть рассмотрена в вашем решении. С SWT существует меньшее сообщество, поддерживающее его. Со Swing, более крупным сообществом, но это не значит, что исправления быстрее попадут в разрабатываемый выпуск. В Qt Jambi и SWT, если ошибка устранена, вы просто распространяете обновленные библиотеки вместе с вашим приложением. С Swing вам придется ждать обновления JRE. Ни один из них не обязательно является нарушителем, но это нужно учитывать.
Лицензионные сборы могут или не могут быть рассмотрением. SWT и Swing, разумеется, не имеют лицензионных сборов. Jambi, о котором я не знаю, но это может зависеть от вашего предполагаемого использования - например, вы распространяете приложение GPL или коммерчески лицензированное.
Удачи.