Matisse или Jigloo?

То, что Вы испытываете, является известной ошибкой ( Lauchpad, Adobe). Из-за него Вы смотрите некоторые видео YouTube с синий оттенок .

Для получения дополнительной информации и фиксация посмотрите этот вопрос: Флеш-видео кажется синим

9
задан Vlad 16 July 2015 в 19:35
поделиться

7 ответов

Не используйте ни то, ни другое! Как и в случае с этим ответом , я твердо убежден (после написания графических интерфейсов Swing в течение 10 лет), что использование построителей графических интерфейсов во всех случаях, кроме крайних , является плохой идеей . ЗАПИРАЙТЕ СВОЙ GUI!

  • Выберете ли вы Matisse или Jigloo, это не стандарт, он выйдет из моды, и появится лучший инструмент. На этом этапе у вас будет устаревший код, который почти невозможно поддерживать . Это уже происходило несколько раз в истории разработчиков графического интерфейса Java.

  • Вам следует избегать принуждения разработчиков к использованию одной среды IDE, и ожидать, что разработчики переключатся на конкретную среду разработки при просмотре кода графического интерфейса, - это огромные накладные расходы. Они будут разочарованы, поскольку не могут вспомнить привязки клавиш, установка проекта устарела, установлена ​​неправильная версия и т. д. Люди будут делать быстрые исправления без компоновщика . На данный момент ваш код невозможно поддерживать как в выбранной вами IDE, так и в построителе графического интерфейса istelf! Все здесь в беспорядке.

  • Создание графического интерфейса, по моему опыту, не является особенно обременительным задача и, вероятно, составляет не более 5-10% от общего времени разработки приложения. Даже если изначально использование Matisse или Jigloo дает вам 50% -ное преимущество по времени по сравнению с ручным кодированием GUI , это несущественно в общем плане . Это, конечно, не стоит скрытых затрат и надвигающихся сбоев в обслуживании, которые ждут впереди.

  • GridBagLayout не сложен . Это просто не так! На самом деле это действительно просто. Вам потребуется несколько минут, чтобы научиться, и после этого вы никогда не оглянетесь назад. Ваши графические интерфейсы будут выглядеть так, как вы хотите, и в результате ваш код станет более удобным для сопровождения. Используйте GridBagLayout !

Я потратил много времени, предупреждая людей об этом раньше, и оказался прав.

13
ответ дан 4 December 2019 в 12:20
поделиться

Лично у меня было несколько случаев, когда XML-файл, поддерживающий форму Матисса, каким-то образом не синхронизировался с кодом, и мне приходилось прибегать к резервной копии, чтобы заставить его снова работать. Этого было достаточно, чтобы меня отпугнуть. Однако у меня нет опыта работы с Jigloo.

В моих текущих проектах широко используется TableLayout . Его легко понять и (из всех менеджеров компоновки, которые я пробовал) поддерживать. Я не нашел другого решения в дизайне графического интерфейса для Java, которое мне было бы удобнее, чем кодирование графического интерфейса вручную. Забегая вперед, я считаю, что это лучший «ориентированный на будущее» способ кодирования моих графических интерфейсов.

Я согласен с Чинтаном в использовании Matisse или подобного ему для создания макета вашего дизайна, а затем преобразования макета в другой макет (например, TableLayout). Лично мне нравится использовать карандаш и бумагу для большей части этого.

2
ответ дан 4 December 2019 в 12:20
поделиться

Я бы не пошел либо с. Лучшее, что я нашел до сих пор, - это Instantiations Swing Designer. Это не бесплатно, но и не дорого. Он поддерживает все основные макеты Swing и НЕ создает никаких дополнительных артефактов, кроме чистого кода Java.

Вот ссылка , если вам интересно.

1
ответ дан 4 December 2019 в 12:20
поделиться

Я бы предпочел Matisse, поскольку Netbeans поддерживается Sun Microsystems, и вероятность того, что проект будет отменен в ближайшем будущем, кажется блаженно низкой.

Кроме того, я не знаю размер вашего проект, но я разработал несколько небольших, и я лично использую matisse, чтобы посмотреть, как будет выглядеть макет, а затем продолжаю кодировать все, используя библиотеку Miglayout . Это значительно увеличивает объем кода, но дает хороший контроль и гибкость. И есть вероятность, что эта библиотека может быть включена в Java 7 и, следовательно, встроена в Matisse.

1
ответ дан 4 December 2019 в 12:20
поделиться

Я предпочитаю Netbeans Matise. Даже если редактировать сгенерированный код невозможно, гораздо проще создавать сложные экраны с помощью Mattise (из-за макета FreeForm).

0
ответ дан 4 December 2019 в 12:20
поделиться

Я не пробовал Jigloo, но добавил бы четвертый вариант.

JFormDesigner - лучший дизайнер пользовательского интерфейса Swing, который я когда-либо использовал. Как и Matisse, он создает файлы форм XML, но это единственный недостаток этого инструмента.

Он поддерживает все стандартные менеджеры компоновки, а также некоторые популярные (такие как JGoodies FormLayout). Он имеет плагины для IntelliJ и eclipse, а также может работать как автономный инструмент.

Вот ссылка

hth

Koen

0
ответ дан 4 December 2019 в 12:20
поделиться

Что можно ожидать, когда вы испортите файл, созданный инструментом? Беспорядок, не так ли? Это очень важный всегда забываемый разработчиками момент.

Возьмем для примера Matisse. Он генерирует для вас XML-файл и .java-файл. С какой стати разработчики начинают менять эти классы? Позже они жалуются, что все перепуталось, и указывают на Matisse как на виновника этого, потому что Matisse не делает A или не делает B. Единственное, в чем виноват Matisse, так это в том, что не может исправить беспорядок, созданный разработчиками. Это проблема в области искусственного интеллекта, и лично я не ожидаю ее решения в ближайшее время.

Для этого есть более или менее простое решение: ООП.

Поясню: одна из самых важных концепций ООП - это "ответственность", которая означает, что определенный класс имеет ограниченную и четко определенную ответственность в более широкой и сложной проблемной области. Итак, Matisse сгенерировал для вас пользовательский интерфейс, который в основном состоит из элементов пользовательского интерфейса, обработчиков событий и т.д.

Затем вы говорите: ну... Мне нужно добавить в него немного логики, иначе пользовательский интерфейс будет неработоспособным. Верно. Это еще одна обязанность, которая не может никогда быть реализована в одном классе, сгенерированном Matisse. Потому что либо люди ленивы, либо не понимают, что значит "ответственность" в ООП, люди реализуют все, что им нужно, добавляют множество переменных и совершают всевозможные безумства в классе, который определенно не отвечает за бизнес-логику.

С помощью такой простой вещи, как наследование, вы можете отделить бизнес-логику в расширенном классе. Базовый класс - это класс, созданный Матиссом. Расширенный класс - это ваш класс, реализованный вручную, который содержит реализацию обработчиков событий, инициализацию элементов пользовательского интерфейса и т.д.

У многих разработчиков возникает искушение отредактировать вручную файл .java, созданный Matisse. Золотое правило гласит: никогда, никогда не редактируйте .java файл вручную. Matisse предоставляет вам средства для определения всего, что вам нужно, и вызова всего, что вам нужно. Никогда не редактируя ресурсы (как .xml, так и .java), созданные Matisse, вы гарантируете, что он (Matisse) сможет загрузить их снова, если вам понадобится изменить GUI в будущем. Возможно, у вас возникнет соблазн отредактировать .java или даже .xml файл напрямую. Пожалуйста, не поддавайтесь этому искушению и просветите себя; в будущем вы поблагодарите себя за это.

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

0
ответ дан 4 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: