Очевидно, что не существует одного решения, но есть преимущества и недостатки обоих решений, и даже есть третье решение: Java с Qt.
Прежде всего, мой опыт работы с C ++ и Qt уже несколько лет, так что, возможно, он не совсем точен, и мой интерес к разработке Java-GUI закончился год или два назад, когда я увидел инструменты для разработки. Я обычно работаю на Java, но не с Swing.
Тем не менее, основное различие между Java и C ++ заключается в развертывании. Java всегда зависит от установленной среды Java, а C ++ немного более автономен. В этом отношении я бы отдал предпочтение C ++, если вы можете управлять развертыванием на двух платформах.
Что касается разработки графического интерфейса, инструменты Qt были очень хорошими и стали только лучше. Фреймворк также очень близко соответствует процессу графического интерфейса и подходит для такой работы. Swing кажется немного более низким уровнем и требует значительного количества стандартного кода. И я не знаю ни одного действительно хорошего инструмента разработки, хотя слышал хорошие слова о богомоле.
Если вы считаете, что Java - это путь к развертыванию или серверной логике, но инструменты GUI для Qt слишком хороши, чтобы их игнорировать, проверьте вопрос stackoverflow о Java Swing или Java Qt . Это стоит прочитать.
В вашем конкретном случае я бы использовал C ++ / Qt, поскольку у вас есть опыт работы с C ++, и это не так уж просто для правильной сборки приложения Java Swing.