LINUX.ORG.RU

Java и тулкиты

 , , , ,


0

2

Иногда пописываю на джавке, но чисто для себя. С рисованием кнопочек особо не сталкивался, но сейчас вдруг захотелось изучить какой-нибудь тулкит.
Насколько я понял, выбор обширный: SWT, AWT, Swing, GTK+, Qt. Хочется выбрать что-то одно и писать под него.
Помогите с выбором. Главное для меня — простота и низкий порог вхождения. Если для создания хелловорда с окошком и парой кнопок нужно написать пять страниц кода, то нафиг такой тулкит.
Плюсом будет, если не возникнет проблем с gcj, если можно без бубна запустить на других платформах, если есть визуальный кнопочко-на-формочку-таскательный дизайнер интерфейсов (а-ля вижуалстудия), если выглядит не как говно, если рендерит шрифты системным методом.

★★★★★

Простота и низкий порог вхождения — это к Swing, ибо официальный. Запустится на всех платформах и во всех средах есть дизайнер, но вот look&feel вряд ли будет нормальным, потому что следить за look&feel авторы свинга считают ниже своего достоинства, а та же Apple перестала посылать им патчи несколько лет назад, для Ubuntu есть лишь сторонняя интеграция с appmenu.

quiet_readonly ★★★★ ()

SWT. AWT совсем протухло, Swing почти протух (на нем работает IntelliJ IDEA и всякий другой ынтерпрайз). А Джамби, к сожалению, более мертвенький, чем живой, хотя Qt и не протухал.

stevejobs ★★★★☆ ()

Swing дефолтный, но выглядит как говно. Я бы посоветовал Qt, но не знаю, поддерживается ли он джавой.

GreenTea ★★ ()

Выбирай между SWT, Swing и JavaFX.

dave ★★★★★ ()
Ответ на: комментарий от CYB3R

что такое ОП-пост?

// А, вроде понял. Тогда советую Qt, но на счёт gcj не уверен

GreenTea ★★ ()
Последнее исправление: GreenTea (всего исправлений: 1)

Хочешь писать десктопный софт под линукс — забудь о Java

И осиливай Qt/C++. Он хоть и убог по сравнению с java, но для задачи подходит сильнее

derlafff ★★★★★ ()

Для свинга есть вполне кошрно выглядящие сторонние LaF'ы, так что не слушай тех, кто говорит, что «как говно». Ну и GTK'шный LaF есть, начиная с Java 7 он совсем неплох.

annulen ★★★★★ ()

Плюсом будет, если не возникнет проблем с gcj

Совсем неактуально

annulen ★★★★★ ()

Насколько я понял, выбор обширный: SWT, AWT, Swing,

А они все системные шрифты не умеют подхватывать и в любой ОС выглядят не нативно?

anonymous ()
Ответ на: комментарий от derlafff

Он хоть и убог по сравнению с java, но для задачи подходит сильнее

O_o

Pavval ★★★★★ ()

Не совсем по теме (нет опыта в джава тулкитах), но с Qt дело иметь приходится. Так вот когда ищу что-то про Qт в гугле, то часто попадаю на всякие джава форумы. То есть вполне используют Qт вместе с джавой. Сам поначалу удивлялся, но судя по количеству и датам вопросов - не такая и редкость это.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Тащить в инсталяторе на клиентскую машину сначала полный дистрибутив jre (или через Excelsior JET), а потом еще до кучи тащить библиотеки самого Qt? Да еще представить это все на макоси?! Кошмар. Оказывается, как легко потерять веру в людей.

Теперь автору.

Если бы я был школьником как ты, то я бы посмотрел на JavaFX - только нужен английский, чтобы читать документацию.

Swing - самый зрелый из этой тройки. Он неплохо выглядит на винде, так себе - на макоси, и довольно хреново - на линуксе, даже в убунте. Тем не менее, в Swing очень много всего. Недаром, IntelliJ IDEA, NetBeans, JDeveloper и почивший ныне JBuilder используют или использовали Swing. Но это запечатленный в камне монумент - его менять вряд ли будут.

На SWT основан Eclipse. Эта библиотека старается быть ближе всего к системе. Но если там чего-то нет, например, генерации метафайла или PDF по заданному графическому порту (контексту или еще хрен знает, как это называют), то это - уже проблема, твоя проблема.

JavaFX - новое слово, так сказать. Его (пока) продвигает Оракл. Выглядит абсолютно ненативно, но сносно на винде и макоси, хотя есть проблемы в рендеринге шрифтов. Когда я его смотрел последний раз на линуксе, то был полный мрак и ужас. Быть может, уже стало лучше. Но пойнт в том, что JavaFX в отличие от Swing и SWT использует сценический граф - это типа модно сейчас.

dave ★★★★★ ()
Ответ на: комментарий от dave

Почему-то никто ничего не сказал о GTK, хотя много про JavaFX, который я вообще изначально не рассматривал. Приложения на gtk+ получаются абсолютно непортируемыми на венду (вендовозненужен!), но выглядят нативно. А JavaFX — глянцевое громоздкое поделие, которое будет адово тормозить на любой платформе.
Так что я остановлюсь на GTK.

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

Почему-то никто ничего не сказал о GTK

Видимо, по тому, что были причины. Но ты свой выбор сделал.

dave ★★★★★ ()

Если простое, то Tk или FOX.
Gtk и Qt посложнее, но если освоишь - не пожалеешь.

Novator ★★★★ ()
Ответ на: комментарий от dave

а потом еще до кучи тащить библиотеки самого Qt?

Дык, там не так уж много.

Хотя, конечно, зависит от того, что используешь, ну и от размера самого приложения.

DarkEld3r ★★★★★ ()
Ответ на: комментарий от dave

Но пойнт в том, что JavaFX в отличие от Swing и SWT использует сценический граф - это типа модно сейчас.

и планы были сделать под iOS, WinPhone и Android. Не знаю почему всё застыло, с M$-то понятно, они не дают запускать код в «плагинах», непроверяемый.

Karapuz ★★★★★ ()
Ответ на: комментарий от CYB3R

А JavaFX — глянцевое громоздкое поделие, которое будет адово тормозить на любой платформе.

А JavaFX перспективный тулкит, поддерживающий аппаратное ускорение на видеоадаптерах, так что летать будет на любой платформе, а кастомизироваться на любой вкус и цвет через CSS

Karapuz ★★★★★ ()
Ответ на: комментарий от DarkEld3r

Я уже пару лет особо не слежу за Qt, но народ жалуется, что QtQuick, к примеру, слишком жирный. Вообще, все больше и больше проникаюсь нежными чувствами к MFC и Cocoa. Первый довольно вдумчиво изучал лет тринадцать назад, а последний - года два назад по самым верхам.

dave ★★★★★ ()
Ответ на: комментарий от dave

MFC

Ну хз, я когда за Qt после MFC (и винапи вообще) взялся, то наоборот нарадоваться не мог.

Да и применение у Qт «немного» шире.

Cocoa

Тут ничего сказать не могу, нет такого опыта.

DarkEld3r ★★★★★ ()

Сейчас потыкал Swing. Чтобы использовать GTK2-тему и системный рендеринг шрифтов, нужно использовать такие параметры:

-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true

CYB3R ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.