Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > GUI Editor


Автор: DOKA 5.3.2007, 00:52
Доброго времени суток!

Для клипания окошек испольую Swing и какой-то стандартный плагин для Eclipse.
Вот в чём проблема: после использования данного плагина, код получается похож на минное поле, т.е. менять код окошек нельзя (иначе перестанет работать оконный дизайнер), а если не менять, то визуально это бардак! А ведь там должен ещё присутствовать и мой код!

Идея следующая: отделить код _создания_ окошек от общего кода программы, как, к примеру в Delphi. Там описание окон содержится в файлах *.dfm (Delphi Form), а сам код, который пишется программистом лежит в *.pas.

Возможно ли такое в Java? Желательно в SWING.

Кстати попутный вопрос: чем мжет быть чревато использование NullLayout (c GridBagLayout я просто задолбался - оконные элементы визуально расставлять неудобно)?


Спасибо.

Автор: Шмель 5.3.2007, 14:41
http://www.java-source.net/open-source/xml-user-interface-toolkits

Насколько я понял, NullLayout - это отсутствие менеджера компоновки. То есть размещение компонентов проводится по жестко координатам. Отсюда вытекают такие проблемы: на разных система компоненты (например, кнопки) могут иметь разные размеры; добавление, удаление, перемещение компонентов становится реальным геморроем за счет всё тех же координат - попробуй высчитать их для каждой системы, где твоё приложение будет запускаться. Короче говоря, абсолютное позиционирование имеет больше минусов, чем плюсов - зависимость от системы, зависимость от пользовательских настроек (дефолтный шрифт, LAF-тема и т.д.) ну и до кучи - изменение размеров окна не влечет за собой автоматическое изменение положения и размеров (если нужно) компонентов. 

Автор: carper 5.3.2007, 15:25
Цитата
Для клипания окошек испольую Swing и какой-то стандартный плагин для Eclipse.


1. Убираем "какой-то стандартный плагин для Eclipse" (VE скорее всего),
2. Учимся писать GUI без костылей, используя IDE разве что как удобный менеджер для визуального рисования ПРОЕКТА (по созданию реальной формы, "проект" можно выбросить).
3. Читаем про MVС и выносим собственно оконный интерфейс куда угодно - хотите просто в отдельные классы, хотите дополнительно с  применением XML для сериализации.
4. Долго ругаемся на меня, JAVA, IDE, менеджеры компоновки, расслабившись переходим к п.5 Если расслабится не удалось переходим к п.2.
5. Понимаем, что писание GUI ручками совсем не равно изобретению велосипеда.
6. Наслаждаемся четким, ясным и простым написанием GUI под Swing. Не понимаем как можно было раньше так слепо позволять всяким редакторам ваять кучу совершенно безобразного кода.
7. Понимаем, что все же есть много случаев, когда надо просто наваять пару окошек.
8. Переходим к п.4 и ждем что может кто-нибудь, когда-нибудь из создателей IDE поймет, что то безобразие, что они предлагают под видом визуальных редакторов, стоит сделать хотя бы чуть-чуть поприличнее.
Ждем, когда они поймут, что все это хорошо будет продаваться не по сумасшедшим деньгам.... 
Мечтаем дальше ...   smile 

Все вышеперечисленное оффтопом считать отказываюсь - при текущем состоянии дел все IMHO именно где-то так и обстоит.


Что касается NullLayout - то вам уже все объяснили, но скажу еще проще - из всех плохих вариантов это самый плохой, что можно только придумать. Уж лучше тогда IDE.

Автор: y3u 5.3.2007, 18:21
carper, +1, держи в репутацию smile

Автор: DOKA 5.3.2007, 22:20
Цитата(Шмель @ 5.3.2007,  14:41)
http://www.java-source.net/open-source/xml-user-interface-toolkits

Шмель, Thx, завтра попробую.

Добавлено @ 22:24 
Цитата(carper @ 5.3.2007,  15:25)
1. Убираем "какой-то стандартный плагин для Eclipse" (VE скорее всего)
...

Спасибо за ответ. Всё понимаю, что код хорошо бы писать руками, но тем не менее период подросткового перфекционизма у меня прошел и есть цель быстро клипать окошки, которые будут, пусть не идеально с точки зрения кода, но корректно работать. Если мусор, нагенерённый GUI-designer'ом будет за ширмой, меня это устроило бы. smile
В данный момент из-за неудобства Eclipse в этом плане, как раз и пишу код руками. Но это дооо-о-о-оолго smile Вспоминаю времена моего проганья на Delphi и аж ностальгия пробирает - вот это эталон GUI-designer'a. К сожалению, там не всё так гладно с самими компонентами, но это уже отдельная история smile

Автор: powerOn 5.3.2007, 23:36
Цитата(DOKA @  5.3.2007,  22:20 Найти цитируемый пост)
Вспоминаю времена моего проганья на Delphi и аж ностальгия пробирает - вот это эталон GUI-designer'a.


Ты просто, наверное, не видел NetBeans-вый Matisse.  smile  Вот это, почти, эталон GUI редактора. ИМХО. smile
Я бы посоветовал среди GUI плагинов для эклипс http://www.myeclipseide.com/ContentExpress-display-ceid-77.html. Но он стоит денежку. Но в NetBeans он, конечно же, бесплатный.

Автор: Foo 8.3.2007, 13:32
Помоему с помощью GUI редактора нельзя сделать нормальный серьезный интерфейс. 
И даже если
Цитата

есть цель быстро клипать окошки, которые будут, пусть не идеально с точки зрения кода, но корректно работать. 

то лучше их клепать без гуи редактора, и никак это не будет быстрее с помощью редактора, если разобраться нормально со свингом, а лучше всего ещё изучить jgoodies фреймворк и делать профессиональный гуи очень быстро. Мне знаком случай когда 2 конкурирующие фирмы писали один проект, одна на Delphi другая на Java. Фирма которая писала на Java оставила далеко позади вторую по качеству гуи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)