JavaFX 2 против Swing для чистого рабочего стола Windows

Мне нужно написать приложение для настольных компьютеров, и с тех пор, как я начал использовать Swing, у нас будет кривая обучения с любой технологией.

Есть ли какие-либо преимущества в моем приложении с помощью JavaFX 2?

Ответ 1

4 года назад У меня был такой же вопрос, и я пришел к выводу, что лучше всего использовать Swing, поскольку в те дни все еще было написано много сторонних библиотек для Swing. Кроме того, 1.0 выпусков от Sun обычно были немного грубыми по краям (я сжег себя на JSF 1.0 и JPA 1.0: -).

Сегодня многие библиотеки имеют аналоги JavaFX или доступны в виде библиотеки JavaFX. Тем не менее, есть также много библиотек, которые до сих пор являются эксклюзивными. Также я немного поработал с JavaFX 2.0, и он кажется действительно полным. Я не натолкнулся на шоустов.

Вам нужно проверить, сколько внешних библиотек пользовательского интерфейса вы собираетесь использовать помимо Swing/JavaFX (и какой). Если ответа не много или много, есть альтернатива Java FX (или просто для того, чтобы сделать это самостоятельно), я бы определенно пошел на JavaFX. Также вы можете использовать компоненты Swing в JavaFX.

Как уже говорилось, JavaFX собирается осудить Swing в будущем, и Oracle кажется совершенным на JavaFX (он также будет раскрыт). Поэтому я настоятельно рекомендую JavaFX.

Обновление состояния 13 апреля 2014:

  • JavaFX уже давно работает с открытым исходным кодом: https://wiki.openjdk.java.net/display/OpenJFX/Main
  • Сообщество привержено JavaFX; Только библиотеки JavaFX, не имеющие свинг-копий, начинают появляться.
  • Oracle доказал свою приверженность JavaFX.

Если вы не были уверены 2 года назад: JavaFX теперь определенно выглядит как способ. Хотя Swing, вероятно, будет долгое время находиться в режиме обслуживания. Это потребует больших усилий, чтобы полностью переносить большие приложения (например, IntellIJ или Netbeans) в JavaFX. И для этих больших приложений такой крупномасштабный порт, вероятно, сейчас не стоит.

Ответ 2

Оба варианта являются хорошими:

  • Если вы хотите богатое графически расширенное приложение, функции JavaFX 2.0 могут быть очень привлекательными. Он разработан, чтобы дать вам много творческого контроля над вашим пользовательским интерфейсом и визуальными эффектами. Просто убедитесь, что он поддерживается на ваших целевых платформах....
  • Если вы хотите, чтобы стандартное настольное приложение работало на максимально возможном количестве платформ, Swing, вероятно, является более безопасным выбором (поскольку Swing гарантированно будет доступен как часть всех современных Java-дистрибутивов). Это также имеет преимущество более зрелых сторонних библиотек.

Ни один из них, скорее всего, не заменит другого: они имеют несколько разные целевые цели и, вероятно, будут сосуществовать на многие годы вперед.