Вибір Java GUI фреймворка

Доброї пори доби...

В універі на дипломний проект дали завдання, зробити прогу по функціоналу — практично стандартний UML дизайнер(можливість закинути на робоче полотно кілька компонентів, з*єднати їх, і налаштувати властивості).

Спершу я вирішив написати цю прогу на java+swing. На скільки я розумію — на swing реально реалізувати задачу, проте, і в інтернеті знайшлось багато противників і конкурентнтів(QT, JavaFX, SWT та ін.) цієї платформи і я засумнівався в тому, що реалізація на ньому — найкраща ідея...

Чи не могли б ви підказати, на якому з GUI фреймворків, краще реалізувати дану задачу?

Дякую.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Реальный редактор — «поделка» на десятки лимонов зелёных. Так что зря ты в это ввязался. IMHO просто попробуй спионерить чью-то поделку, чтобы вообще ничего не писать. Тем более что проект только учебный.

Если остановишься на swing — сразу подключай MigLayout, сэкономишь кучу времени на «нюансах».

Для себя можешь посмотреть еще в сторону грифона (griffon.codehaus.org ). Хотя он и Groovy based, но если ты освоил джаву проблемы с грувями у тебя не должны возникнуть, заодно и выучишь всомогательный язык, который используют в Java проектах для отдельных задач. Гриффон довольно таки гибок и его легко интегрировать с другими технологиями описанные многими тут. Заодно применяется для написания своих плагинов под Intellij IDEA.

Я б порадив Swing, оскільки інформації про неї у мережі дуже багато.
Можна поглянути у сторону зручного і мінімалістичного UML редактора з відкритим джерельним кодом від Кея Хорстмана: horstmann.com/violet

джерельним кодом
о мої вуха!?! як тільки не знущаються над цим словосполученням :)

відкритий джерельний, криштально чистий та прозорий

як на мене найкраще перекладати ’source code’ як «програмний код», тоді зберігається смисл і не ріже вуха, а якщо перекладати дослівно виходить фігня

Благодарю за помощь.

На счет: «абы сделать» — да, задача именно этого и требует. Но чисто для себя я все-таки хочу сделать все правильно(или хотя бы как можно больше узнать о java, и разработке десктопных(сайтами сыт по горло на работе) приложений), насколько это возможно(потому и просил у вас помощи).

Как я понял, swing — просто и стандартно.
JavaFX — красиво, гибко, но сложно в изучении и работе без опыта.
SWT — насколько я сейчас понимаю(может и ошибаюсь), для этой задачи имеет те же плюсы, что и swing.
GWT и разработка веб-ресурса — интересный вариант(нужно еще обдумать) с точки зрения реализации задания и обучения, но наверное на порядок сложнее всех предыдущих + требует онлайн.

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

Еще раз благодарю.

SWT — насколько я сейчас понимаю(может и ошибаюсь), для этой задачи имеет те же плюсы, что и swing.
Нет совсем так. Дело в том, что с использованием чистого SWT такие вещи никто не делают. Используется Eclipse Rich Client platform, что автоматически даёт тебе доступ к туевой хуче УЖЕ ГОТОВЫХ решений подобного рода. Грубо говоря, если с помощью свинга ты провозишься львиную часть времени пытаясь изобразить хоть что то, заюзав Eclipse RCP сможешь сделать свой редактор с блекджеком и шлюхами.

Ещё посмотри на такой проект cocovilla, это генератор визуальных языков. Тебе придётся лишь нарисовать соответствующие картинки и написать генератор кода. Заодно ознакомишься с новейшим и перспективным средством

Подайте на пропитание бывшему стороннику Eclipse RCP:

doxtop.livejournal.com/189549.html

так хто ж вам лекарь. Если у вас геи-лесорубы то. Eclipse RCP не подходит... впрочем как и любые готовые компоненты. Берем JavaFX и струячим что хотим.
Кстати могу навести другую сукес стори где юай был на SWT лишь номинально, все было нарисовано с нуля и ничо, выглядит как конхветка и нормально работает и писалось без особых проблем. Так шта....

На эту задачу хорошо ложится NetBeans RCP+Visual Library: виджеты с набором редактируемых свойств, манипулирование виджетами.

Можно посмотреть на менее радикальный вариант Swing+Visual Library.
Так же есть в природе и примеры интеграции Swing+JavaFX 2

Чи не могли б ви підказати, на якому з GUI фреймворків, краще реалізувати дану задачу?

Зависит от того, какие цели преследуются. Если просто сдать работу с минимальными затратами сил, то можно найти и немного переделать проект под свою задачу с sourceforge или github. И легче всего разобраться будет в проекте на базе Swing. Но проблема в том, что на данном этапе десктопные приложения не на пике популярности, и освоение Свинга в какой то мере напрасная трата сил, если брать в контексте пользы при дальнейшем трудоустройстве. Поэтому, если есть время разбираться, то было бы намного полезнее сделать веб приложение с клиентом на джаваскрипте, например.

Пиши на GWT — код пишется на Java, по стилю (подходу) похоже на Swing, только:

0) ниже сложность, меньше зависимостей от ОС в отличие от Swing, легче решать проблемы обходными путями, лучше и легче натянуть современный дизайн
1) выложешь в сеть и будет больше возможностей продвигать вперед, продавать, если получится хороший продукт
2) сможешь сделать легче совместное пользование продуктом пользователями поскольку будет явно выделен сервер в архитектуре
и т.д и т.д.

Что только люди не придумают чтобы на js не писать

Что только люди не придумают чтобы на js не писать
Зачем писать на джаваскрипте толстый клиент, хоть одну причину назови
Спершу я вирішив написати цю прогу на java+swing. На скільки я розумію — на swing реально реалізувати задачу, проте, і в інтернеті знайшлось багато противників і конкурентнтів(QT, JavaFX, SWT та ін.) цієї платформи і я засумнівався
Это тут самое печальное. Наверно задача работы — научится чему-то (вряд ли результат работы будет содержать что-то новое в научном плане) , и думаю чему-то более фундаментальному чем просто использование какого то фреймворка? Какая тогда разница, сколько противников в интернете у того или другого фреймворка, если видишь что это можно реализовать — делай.

Но вообще, раз такие вопросы, то может лучше поменять тему работы, пусть лучше это будет — сравнение современный Java GUI фреймворков на примере создания своего контрола для построения диаграмм? Может хоть какой то толк от работы будет, для кого-то ещё кроме студента.

Є уже практично реалізований варіант UML дизайнера на джава —
www.yworks.com/products/demo/yfiles/DemoBrowser.jnlp (переклікай на Custom user interfaces)
штука безумовно гарна, але платна навіть для навчальних проектів. Є тріалка на місяць

Колись досліджував питання красивих UI бібліотек на джава. Рік тому JIDE усіх рвав і у них для GPL/навчальних проектів є безкоштовна версія.

Зараз непогані штука Оракл зробив у JavaFX, але погоджуюся з уже виступавшими — ще трошки засире воно, хоча кілька проектів на тому уже пишемо, але імхо для дипломного проекту б підійшло, це ж не продакшин, а навчання всетаки, тому розібратися з «старими-новими» технологіями то саме воно.

Тебе подойдет уже готовый фреймворк? Если да, смотри в сторону Eclipse Modelling Framework или проекта cocovilla

Настоятельно рекомендую потыкать палочкой Eclipse GEF, EMF, GMF. Если в кратце, с помощью этих фреймворков ваше задание делается практически без кодирования, тупо генерилками с визардов. Ну а пример

UML дизайнер
у них идет как стандартный экзампл.

Если суть работы, что бы студент научился реализовывать модель диаграмы в памяти и код рендеринга этого всего на экране. То вариант где он получит сразу все готовое, мне кажется не очень хорошим. Разве что автор хочет побыстрее это сделать, а обучение в данном случае ему не нужно.

EDIT:
Хотя это дипломная, так что может суть больше — показать чему он научился, но суть все равно не меняется. По честному, нужно самому сделать основную логику. Да и написать нужно будет о чем-то.

По честному, нужно самому сделать основную логику. Да и написать нужно будет о чем-то.
тогда уже BlueJ;)

Со swing я как программист мало сталкивался. Swing приложения на десктопе ненавижу. SWT вполне норм, не знаю чем кому API не угодили.

В Swing вы найдете много готовых решений проблем на форумах. Наверное наиболее адекватный вариант. Тему UI установите явно на system.

С JavaFX будет вероятность на чем-то застрять и просто отказаться от нужного вам UI решения, сделать как-то по другому.

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

SWT. Там такой API что «хватит это терпеть», тем более что сказки о быстром нативном UI не оправдались.

Еще совет, если есть время посмотрите на Platforms. Например NetBeans Platform, получите много плюшек сразу, которые не так быстро написать самому. В свое время использовал голый свинг чтобы экономить память, как бы странно это не звучало, но когда написал всю нужную функциональность, начало занимать как обычное NetBeans Platform приложение

Swing. Тому що
самий простий у застосуванні
самий джавовий,майже «академічний»
повно документації
повно бібліотек
повно проектів, наприклад ArgoUML

JavaFX — цікавий, але не для цієї задачі
SWT — не має переваг, для цієї задачі

P.S.
А щоб не гаяти час на лісапеди, використовувайте щось з:
SwingX, JGoodies, GlazedLists, InfoNode Docking Windows, MigLayout, Apache Batik

попробуйте JavaFX. Знакомые свингисты зело хвалили как альтернативу.

На swing-е, это задание будет сложнее реализовать?

О нееееет... Если ты уж надумал десктопное писать приложение, то точно не java. C# и WPF все что тебе надо, на крайняк винформы

Благодарю. Но почему вы так категоричны против java на десктопном приложении?

У парней с мс работа с интерфейсом на десктопе на порядок выше будет

Бэк-енд на Java, фронт-енд на C# + WPF — это реалии кровавого энтерпрайза 21 столетия.

Ентерпрайз тупо под винду?! Мега солюшн =)

это реалии кровавого энтерпрайза 21 столетия
Да ладно, а чо ж таких кровавых реалий так мало тогда?
Ентерпрайз тупо под винду?! Мега солюшн =)
В реальном кровавом энтерпрайзе зоопарк различных систем, там есть место и десктоп С# WPF приложениям с богатой графикой.
Вы знаете,чем эти системы "по уму "соединяются?
Да ладно, а чо ж таких кровавых реалий так мало тогда?
Вы проводили собственное исследование рынка?
Любопытно бы было ознакомится.

Вы в с своем ответе не увидели переход своей темы от бест-практис на «имеет место»?

Вы знаете,чем эти системы "по уму "соединяются?
это неважно (от этого C# WPF не станет работать под линухой и яблоком), прикрутить можно что угодно с чем угодно, лишь бы было желание
Вы проводили собственное исследование рынка?
Любопытно бы было ознакомится.
достаточно было поработать на больших клиентов с довольно богатым зоопарком. Где рыло не пишется на C# WPF, а отдельно стоящая аппа 10-го вендора, выводящая графики и отчеты.
Расскажите лучше о своем исследовании, что обнаруженный Вами симбиоз имеет преимущества.
Вы в с своем ответе не увидели переход своей темы от бест-практис на «имеет место»?
Нисколько.
это неважно (от этого C# WPF не станет работать под линухой и яблоком), прикрутить можно что угодно с чем угодно, лишь бы было желание
A WPF должен работать под Linux и iOs? Это хорошая задача для Мигель де Икаса с сотоварищи.
Но это не задача для архитектора кровавого энтерпрайза.
достаточно было поработать на больших клиентов с довольно богатым зоопарком.
Для меня большие клиенты — это Barclays и Deutsche Bank, и подобные из London & NY Area, очччень детально изучал их вакансии.
Сам работал на чуть поменьше, но и там дружат ежа с удавом.
Расскажите лучше о своем исследовании, что обнаруженный Вами симбиоз имеет преимущества.
Я описывал реалии, выбранные не мной лично, а юберархитекторами из соображений best of breed для каждой части.
Еще пока не дорос то того уровня, чтобы описывать преимущества подетальней.
Это Вы со всей горячностью и всезнанием настаиваете, как всем лучше, но реальность, увы свидетельствует об обратном.
Вокруг Вас миллионы леммингов, о ужас, они все заблуждаются;)
A WPF должен работать под Linux и iOs? Это хорошая задача для Мигель де Икаса с сотоварищи.
Но это не задача для архитектора кровавого энтерпрайза.
Идея архитектора в первую очередь сделать систему удобной для пользователя, если она работает только из под винды, это уже неудобства, не 100% людей работают на ней. Я и не говорил, что архитектор должен заставлять WPF работать везде. На то он и архитектор, чтобы выбрать тот инструмент, который позволит решить поставленную задачу, которых является предостаточно.
Для меня большие клиенты — это Barclays и Deutsche Bank, и подобные из London & NY Area, очччень детально изучал их вакансии.
Сам работал на чуть поменьше, но и там дружат ежа с удавом.
Это Вы со всей горячностью и всезнанием настаиваете, как всем лучше но реальность, увы свидетельствует об обратном.
Вокруг Вас миллионы леммингов, о ужас, они все заблуждаются;)

Я пока вижу только одного лемминга в виртуальной кровавой реальности :)

Я описывал реалии, выбранные не мной лично, а юберархитекторами из соображений best of breed для каждой части.

Не забывайте о том, что есть сейлсы, которые впихивают свои продукты и они могут быть не так важны для архитектуры, как просто политические решения. И повторюсь еще раз, так как вижу Вы очень внимательны при чтении и для Вас главное не спорить. Пишутся отдельно стоящие приложения на C#, так же как и на других языках, что не делает его особо привелигирированным выбором для вкручивания с Java бэкэндом даже для десктопных (не говоря уже о фронт-енде) приложений в энтерпрайзах. Не путайте создание майкрософтских экосистем взаимодействующих с остальным миром, включая Java Enterprise системы.

Идея архитектора в первую очередь сделать систему удобной для пользователя, если она работает только из под винды, это уже неудобства, не 100% людей работают на ней.
Крупная корпорация мыслит рабочими местами, серверами, сервисами, транспортные шинами, wеб порталами для пользователя.
Windows там внутри или Linux при всем этом не имеет принципиального значения.
ПО для массового потребителя — да, Вы правы, там имеет значение, есть ли порт под различные системы.
Пишутся отдельно стоящие приложения на C#, так же как и на других языках, что не делает его особо таким выбором для вкручивания с Java бэкэндом даже для десктопных (не говоря уже о фронт-енде) приложений в энтерпрайзах.
Десктоп нужен там, где нужна высокая скорость и хорошая графика.
С# WPF может быть хорошим решением для конкретного рабочего места.
Поэтому полно вакансий С# WPF + Java.
Некоторую сермяжную инжинерную правду я в этом вижу.
Как должно быть сделано православно, кошерно, богоугодно я, извините, не знаю;)

Да, согласен, для если приложение разрабатывается чисто под винду — бесспорно C#. Благодарю за совет в следующий раз так и буду поступать, но уже не могу изменить платформу, только GUI фреймворк.

Поскольку редактор UML, может и на линухах с маками запускать будут. Тогда java неплохой выбор.

Это уже по вкусу. В каждом есть плюсы и минусы. Но я бы выбрал swing — часть javaSE. Плюс хорошие средства разработки. Для диплома самое оно.

берите свинг — инфы в сети море и фреймворк достаточно стабильный. У JavaFX, насколько я помню, проблемы с работой под линухами. Но я этот вопрос ресерчила достаточно давно, может уже чего и поменялось.

Подписаться на комментарии