|
Модераторы: LSD, AntonSaburov |
|
kulibin |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Стоит такая задачка: написать на java десктопное приложение для работы с БД, Требуется нормальный GUI - с большим упором на таблицы - и с очень к ним большими требованиями.
Немного предыстории: сам я родом с C#.NET. Сейчас по работе меня перекинули на Java-проект, Очень заинтересовала Java - особенно в области Hibernate & EJB & Spring и т.п. И вот я решил одну домашнюю разработку на явке сделать. Вот тут то и началась фигня . После знакомства со swing меня такая тоска охватила.... Это в то время, как космические корабли бороздят просторы и т.д. и т.п. - и вот такой вот жостко геморный и лажовый JTable... Вобщем то swing в области теории мне понравился (в сравнении с WinForms) - но в области создания богатого и профессионально ВЫГЛЯДЯЩЕГО ДЛЯ ПОЛЬЗОВАТЕЛЯ (ему ж, родимому, вся эта теория вы сами знаете до какого места!!!) - это ж просто опа!!! Не пойму я совсем - для веба на джаве туева хуча всяких примочек - ричфейсес и куча ещё всего - всё оч круто и наляпано можно наворотить. А что с десктопными приложениями? Они разве уже не нужны?! Или я просто чтото пропустил? Очень на это надеюсь... Вопрос: подскажите пожалуйста чем на джаве можно сделать красивый и удобный гуй? Скины и красивые кнопочки извращённого вида не интересуют абсолютно. Интересуют гриды - с различными эдиторами для ячеек, с многострочными заголовками с группировкой, с возможностью древовидного отображения - группировки строк и т.п. По сути весь интерфейс будет построен на гридах. JTable я не понял. Если с него и можно чтото выжать - то просто нечеловеческими усилиями - причём учитывая то, что данные будут в виде хибернейтных POJO-объектов - то эти нечеловеческие усилия возможно прийдётся повторить для каждой таблицы приложения.... Немного вот пролистнул по SWT описание. Там скрины както поинтереснее чем со свингом выглядят - но всёже таблички както грустновато выглядят :( Java FX вот ещё чтото мелькало - вообще полностью не в курсе что это... Какие ещё есть варианты? Т.е. в сторону каких технологий смотреть и в сторону каких компонентов? Возможно и под свинг есть какието гриды с богатыми возможностями и простые в обращении? Кроме возможностей предоставления удобств узеру очень ещё интересует удобство и простота для программиста - т.к. в принципе хороший грид можно и самому с нуля написать - вопрос только в том сколько лет это займёт Да - и ещё - обязательное требование к компонентам - бесплатность - а в идеале опенсурсность. Буду рад любым мыслям на эту тему. Спасибо. |
|||
|
||||
COVD |
|
||||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
Ну и запросы. Обычно довольствуются ненормальным, некрасивым и неудобным (шутка) .
Практика показала, что для многих задач достаточно веб-средств (html + javascript) для реализации клиента. Но в некоторых случаях этого недостаточно. Этот вопрос, на мой взгляд, имеет смысл лишь применительно к конкретной индустрии. Поинтересуйтесь, что используют ваши конкуренты.
"хороший"(заточенный под вашу конкретную задачу) грид надо писать с "нуля". И этот "нуль" - либо JTable из Swing, либо аналог из SWT. Эти компоненты относительно низкого уровня и осваиваются не за 15 минут. Выбор Swing vs SWT делают по разным критериям, но если делать акцент на таблицы, то у меня сложилось впечатление, что JTable предпочтительнее. |
||||||||
|
|||||||||
kulibin |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
||||
|
||||
dorogoyIV |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 36 Всего: 46 |
||||
|
||||
kulibin |
|
||||||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Щас вот курочу всёже JTable - SWT я забоялся - не охота коллекционировать поверхностные знания о различных технологиях. Путь пока Swing будет - и JTable.
Пытался чтото найти по типу надстройки над JTable - ничего интересного опенсурсного не нашол. Да и платного тоже и мало и не особо оно. Сейчас вот писаю модельку для работы JTable с коллекциями POJO-объектов хибернейтных. Вроде получается чтото. Даже немного нравиться начинает . Вот нашкрябал пару классов:
Охота заслушать мнения специалистов по поводу этой моей поделки С событиями модели не оч разобрался: вот это
это для кого? для самой JTable - или для обработки редактирования - сохранения в бд и т.п.? И вообще как принято обрабатывать редактирование модели пользователем: из самой модели вызывать методы сохранения персистентных объектов - или только события соответствующие тут генерить? |
||||||
|
|||||||
aleksandy |
|
||||
Опытный Профиль Группа: Участник Сообщений: 260 Регистрация: 17.12.2006 Репутация: 1 Всего: 5 |
Это для любого слушателя модели, коим является и JTable. Обработку редактирования правильно делать в этих самых слушателях. |
||||
|
|||||
kulibin |
|
||||||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
угу.... интересно.... а я думал в модель эту обработку запихнуть.... куда ж её девать то..... у меня получается есть классы по типу DOA - они же по типу сервисов - их методы будут дёргаться для извлечение энтитей, сохранения, удаления - и они же будут инкапсулировать основную бизнес-логику. И я собирался (пока не делал этого вообще) дёргать эти самые дао/бизнес-сервисы из моделей таблиц.... у меня в принципе и не было уверенности в правильности этого - но и нет понимания как лучше это делать. В коде представления то это совсем не уместно будет... Какойто по типу контроллер приложения чтоли вводить - который бы инкапсулировал бы в себе логику работы приложения уровня представления - отображение форм, какието сценарии... У меня чтото смутное предчувствие, что даже если бы нашолся шарящий человек с желанием меня просветить на эту тему - то наверное объяснения понадобились бы довольно объёмистые может хотя бы кинете ссылку на статейку какую об архитектурных принципах по типу MVC - в примерах какихто боле-менее жизненных? я и читал чтото такое - но чтото меня от этого плющит мозг выворачивается на изнанку - но понимание не приходит :( |
||||||
|
|||||||
COVD |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
kulibin, основной принцип Swing - все операции с гуи делаются в одном потоке - EventDispatchThread (EDT). Этот поток извлекает из очереди события и обрабатывает. Когда вы вызываете метод fire..something..Changed(), то в итоге, если необходима перерисовка, создается соответствующий обьект-событие (Event) и помещается в очередь EDT. В эту очередь также попадают и события от мыши, например.
Теперь главное. Модификация модели (таблицы, графика,...) тоже должна осуществляться через EDT. Если обновления берутся из внешнего источника (файл, база данных, сеть), то на их подготовку (загрузка, парсинг) требуется время. Поэтому подготовку данных надо делать в другом потоке (иначе гуи будет "замораживаться"). Но вставку обновлений в модель, т.е. ее модификацию, только через EDT. Таким образом, нужен контроллер, который этим занимается. В IDE NetBeans (бесплатный opensource от Sun) есть среди прочих и шаблон проекта JavaDesktopDatabaseProject. Это "конструктор" заточенный, на мой взгляд, именно под вашу задачу. Со всеми модными делами. И документация на уровне. Сам я не пробовал, но рекомендую взглянуть. |
|||
|
||||
kulibin |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Спасибо, очень ценная информация - я этот момент благополучно пропустил - как наверное и многие другие Я эклипс пользую. Сначала мне нетбианс больше понравился - но потом на работе я на нём отлаживал ёжб-проект с жбоссом - и оно в debug-e жостко глючило - отваливались брейкпойнты (не отображались) и там ещё чтото. Подстава была жосткая - я по работе изза нетбианс чуть не выгреб люлей. Пришлось в пожарном порядке ставить эклипс (ещё у нас на работе все эклипс пользуют - и помочь с нетбинс мне никто не смог - может там и мелочь какаято была, может я загнался - но по эклипсу если чтото такое - то хоть есть кому помочь быстро). А шаблон десктопного приложения на нетбинсе я видел мельком - там чтото очень громоздкое. И не оч нравится то, что в нетбинсе код форм и страничек сильно напоминает родную визуал-студио - такой же избыточный и нечитаемый. Это хорошо только в первые 3 дня изучения - потом нужно срочно переключаться на ручное написание кода форм - чтобы не вошло в привычку. Вот эти вот бэкинг-бины для вёба - и подобный же подход к гую - это зло. |
|||
|
||||
Connie |
|
|||
Опытный Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
|
|||
|
||||
kulibin |
|
||||
Бывалый Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Не оч понял интересно конешно.... но щас я уже прочно на эклипс подсел - а тогда времени не было разобраться - была срочная работа да и к эклипсу много плагинов всяких - и возможно сам чтото начну под эклипс писать - и ещё в сторону SWT поглядываю - хотя пока всёже остановился на Swing-e. Думаю с эклипсом мне больше попути. Хотя было бы интересно заслушать контраргументы - чем нетбианс лучше и т.п. И ещё в связи с этим же возможно про JBoss vs GlassFish - GlassFish & NetBians родные в доску - а эклипс к JBoss ближе |
||||
|
|||||
Connie |
|
|||
Опытный Профиль Группа: Участник Сообщений: 382 Регистрация: 12.8.2008 Репутация: 8 Всего: 9 |
||||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |