Можем ли мы разработать очень красивый пользовательский интерфейс в swing, и если нет, то каковы альтернативы


В моем текущем проекте мы должны разработать красивое настольное приложение на java.

В настоящее время у нас есть очень простое настольное приложение, написанное на swing, и команда не имеет хороших знаний swing. Можем ли мы создать очень красивый пользовательский интерфейс в swing?

Должны ли мы использовать JavaFX для создания настольного приложения?

Каковы другие альтернативы для этого?

6 23

6 ответов:

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

Я рекомендую книгугрязные богатые клиенты чета Хааза и Ромена Гая, если вы хотите узнать, как сделать хорошие приложения Swing GUI.

Вы можете сделать так, чтобы это выглядело так, как вы хотите. Особенно если вы пишете свой собственный внешний вид. Я сделал это сам с полупрозрачными панелями и упрощенными кнопками.

Взгляните на снимки экрана по адресу:

Http://www.taranfx.com/best-java-swing-look-and-feel-themes-professional-casual-top-10

Nimbus - это новый внешний вид, который набирает популярность, и он выглядит очень профессионально imo:

Введите описание изображения здесь

Вы, конечно, можете создать отличный внешний вид пользовательского интерфейса в Swing - приложениях, таких как NetBeans и IntelliJ IDEA доказали это среди многих других.

Единственной альтернативой Swing являетсяSWT (Eclipses toolkit), однако он не так портативен, как Swing, и не так гибок. Однако он предлагает более высокую производительность и использование собственных компонентов, что может быть тем, что действительно нужно некоторым людям.

Существуют привязки Java для большинства существующих графических наборов инструментов, таких как ну, например Java для Gnome , и кто-то может найти их интересными.

Я, однако, отдаю предпочтение исключительной переносимости Swing, принятию MVC, подключаемому виду и ощущениям, наличию множества сторонних библиотек с дополнительными компонентами (SwingX, JIDE , ...) и простота использования.

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

Не трогайте JavaFX 1 с помощью bargepole.

JavaFX 2, однако, выглядит очень многообещающе, и Oracle говорит, что они собираются тесно интегрировать его с Java 8. За ним стоит очень хороший API, он графически ускорен, вы можете скинуть его в значительной степени, как вам нравится, используя CSS3, и по умолчанию он тоже выглядит довольно хорошо.

Единственное предостережение заключается в том, что он еще не доступен для Linux, но если вы хотите разработать приложение, которое будет выпущено в ближайшие пару лет лет или около того, или вы не слишком суетитесь в ожидании кросс-платформенной поддержки, это хороший вариант для рассмотрения.

Из вашего ответа не очень понятно, в чем ваша проблема. Простое, но часто достаточное решение состоит в том, чтобы изменить внешний вид приложения для вас на внешний вид системы по умолчанию (поэтому Swing выглядит так же, как собственное приложение). Все, что вам нужно сделать, это вставить следующий код где-то, прежде чем любой из ваших UI будет создан/показан (если вы не знаете, где, поместите его в качестве первого в вашем main-методе):

try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
// exit application, log  or ignore exception
}