С какой среды Java GUI начать?

Я совсем новичок в Java.

У меня есть инструмент, написанный на C#, который я хочу портировать на Java.

Я использую Eclipse и решил начать с WindowBuilder.

Однако меня сильно смущает разнообразие вариантов (GWT, SWT, Swing), и чем больше я гуглю, тем больше путаюсь.

Мне нужен чистый графический интерфейс, ничего сверхсложного, и я хотел бы работать с самым простым фреймворком, желательно таким, который максимально похож на стиль C#.

Что вы можете мне порекомендовать?


person sara    schedule 04.04.2012    source источник


Ответы (5)


Я должен сказать, что «самая простая» (т. е. лучше всего документированная и самая старая) среда (из трех) — это, безусловно, Swing.

Ознакомьтесь с руководствами по Oracle Swing.

Есть некоторые вещи, которые следует учитывать при использовании Swing (например, говорят, что он «не потокобезопасен», но см. этот поток, например), но в целом я бы рекомендовал его в качестве отправной точки для разработки графического интерфейса на Java.

SWT (Standard Widget Toolkit) изначально был разработан для Eclipse и GWT (Google Web Toolkit) используется для веб-приложений.

person s.d    schedule 04.04.2012
comment
это не потокобезопасно, что можно легко "исправить" (в кавычках, потому что я не считаю его сломанным в первую очередь). Я смотрел другие (родные) приложения. в Windows происходит точно такое же «зависание графического интерфейса» при занятости. Попробуйте настроить свои диски на отключение при бездействии, это становится очевидным при загрузке документов во многих приложениях. поставляются с ОС (или поставляются той же компанией). - person Andrew Thompson; 04.04.2012
comment
@AndrewThompson: Конечно, Swing не сломан, и безопасность потоков не является проблемой, которую нельзя «исправить» (согласие с одинарными кавычками). Я просто хотел упомянуть об этом, потому что любой новый пользователь Swing, вероятно, столкнется с этим и, следовательно, может бояться, что он/она поставил не на ту лошадь. Отредактирует ответ, чтобы отразить это менее угрожающим образом. - person s.d; 04.04.2012
comment
Хорошее редактирование (и заметное предупреждение)... :) - person Andrew Thompson; 04.04.2012
comment
Единственная причина, по которой пользовательские интерфейсы Java блокируются, заключается в том, что многие разработчики лениво или ошибочно пренебрегают использованием рабочих потоков для длительных задач. Прекратите делать глупости в потоке отправки событий, и у вас не будет проблем. - person ; 02.06.2013

Попробуйте Java Qt, это довольно круто с C++

person Aadi Droid    schedule 04.04.2012
comment
Проверьте обсуждение здесь, чтобы помочь в дальнейшем stackoverflow.com/questions/422956/java-swing-or-java -qt - person Aadi Droid; 04.04.2012

Я думаю, что качаться довольно легко, поэтому я бы начал с качелей.

person QI3it    schedule 04.04.2012

Если вы работаете с C#, лучший способ начать с установки среды IDE Netbeans. В нем есть всевозможные мастера для создания новых форм, и у вас есть высококачественный визуальный редактор, который очень похож на тот, что есть в Visual Studio.

После этого вы можете отредактировать «код позади», чтобы использовать его для программного управления компонентами. Я полагаю, что Eclipse тоже может это сделать, но, на мой взгляд, Netbeans очень стабилен и поставляется со всем, что работает по умолчанию, без потери времени на настройку или установку плагинов...

Кроме того, если вам нужна сложная стыковочная платформа Windows, она также интегрирована в Netbeans, и у вас есть мастер для создания «приложения Rich Client Plateform»:

Как и в Eclipse RCP, он основан на ядре платформы Netbeans с удаленным подключаемым модулем IDE. И у него есть интересные функции, такие как создание кроссплатформенного установщика и наличие плагинов внутри вашего приложения...

Удачи,

Рено

person Renaud    schedule 04.04.2012

Я довольно широко использовал Swing и GWT. Как уже упоминалось, Swing — хороший выбор для автономного Java-приложения. Я не могу высказать мнение о Swing против SWT, потому что я никогда не использовал SWT. Но сколько автономных приложений в наши дни? Не слишком много.

Если вы хотите, чтобы ваше приложение было доступно из браузера, вы, вероятно, захотите использовать пользовательский интерфейс на основе javascript. Существует множество фреймворков пользовательского интерфейса на основе javascript, например. YUI, Dojo, Prototype, JQuery и т. д. Что использовать? Если вам нравится программировать на Javascript (кстати, это не простой язык для освоения), вы можете использовать один или несколько из этих фреймворков. Однако, если вы новичок в Java и не знаете javascript, GWT может быть очень хорошим выбором, так как он обычно устраняет необходимость знать javascript (вы пишете весь свой код на Java, и компилятор генерирует для вас высокооптимизированный javascript, и почти всегда сглаживает все различия между браузерами — это большое дело). Я использую GWT уже больше года и очень рекомендую его. Его можно использовать с механизмом приложений Google или с любой другой серверной технологией. У меня возник бы один вопрос: можно ли эффективно использовать GWT для автономного приложения. Я бы предположил, что есть способы сделать это, но я не исследовал это. Если это так, я бы также склонялся к использованию GWT для автономного приложения, потому что тогда ваш код можно было бы повторно использовать для веб-интерфейса, если это автономное приложение в конечном итоге станет доступным для Интернета.

person ptflix    schedule 04.04.2012