Java Swing - разделение между GUI и кодированием? - PullRequest
4 голосов
/ 06 ноября 2010

Я всегда работал с веб-приложением, и это то, что я люблю делать. Для моего ООП курса мой профессор решил «навязать» мне использование Java. Я всегда использовал Java для создания консольных приложений, так что это не проблема.

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

Хорошо, позвольте мне объяснить. В качестве основы поддержки для написания моей диссертации я использовал версию PureMVC для Flex 3. Во Flex 3 есть что-то действительно классное: вы можете отделить структуру интерфейса от интерфейса «кодирования». Вы пишете структуру в mxml, который является HTML-подобным языком, и вы даже можете добавить стиль, используя CSS-подобный язык. Когда вы добавляете события, вы пишете в отдельном классе (в AS3) код для этого события.

Есть ли что-то похожее для Swing? Или, если не Swing, есть ли для Java библиотека GUI, которая позволяет это?

РЕДАКТИРОВАТЬ: Спасибо за ваши ответы, я все еще оцениваю ваши решения.

Ответы [ 7 ]

4 голосов
/ 06 ноября 2010

Вы можете попробовать что-то вроде Swing JavaBuilder . Он позволяет вам определять компоненты и макет вашего графического интерфейса в YAML, отделяя определение макета от частей «кода». Пролистайте документы , чтобы увидеть, звучит ли то, что вы ищете.

(Отказ от ответственности: я слышал об этой библиотеке и подумал, что она звучит как хорошая идея, но я еще не использовал ее, поскольку я всегда кодировал Swing "от руки").

2 голосов
/ 06 ноября 2010

Нет ничего такого, что я знаю о Swing. Java - это код, а не разметка, поэтому он будет отличаться от вашего опыта работы с HTML / CSS / Flex.

Свинг был задуман в конце 90-х годов; Нереально ожидать, что это будет соответствовать представлению 2010 года о том, как должны создаваться пользовательские интерфейсы.

У вас может быть L & F, который можно заменить, но это не похоже на CSS.

Самая близкая вещь, которую вы найдете в Flex в мире Java, - это JavaFX. Я не думаю, что это поджигает мир. Уровень усыновления не такой, как хотелось бы его создателям.

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

1 голос
/ 16 декабря 2012

Вы написали, что использовали Flex-версию PureMVC, и это было хорошо.Почему вы не хотите попробовать версию Java, если она? PureMVC для Java

Я использую его в течение 1 года, и он отлично работает!Вы можете получить все преимущества шаблона MVC и разрабатывать действительно большие приложения.Существует даже многоядерная версия, которую можно комбинировать с Pipes для создания приложений MDI.

1 голос
/ 06 ноября 2010

Возможно, вас заинтересует apache pivot framework.

0 голосов
/ 19 ноября 2010

Dierre,

Сожалею, что у вас возникли проблемы с демо Metawidget.Я полагаю, что это связано с апплетом Groovy Console, работающим в Linux, а не с самим Metawidget.

Не могли бы вы сообщить мне, с какими проблемами вы сталкиваетесь, чтобы я мог прикрепить его к открытой проблемес командой Groovy: http://jira.codehaus.org/browse/GROOVY-3604

С уважением,

Ричард.

0 голосов
/ 09 ноября 2010

Hm.Может быть, я понимаю этот вопрос не полностью.Но я думаю, что стоит упомянуть эти две вещи:

  • Да, Java - это «просто» код, но вы, безусловно, можете отделить код, который создает вашу графику, от кода, который заботится оСобытия.На самом деле это считается "хорошей практикой", чтобы сделать это.Поэтому «Когда вы добавляете события, вы пишете в отдельном классе код для этого события».Для этого вы, скажем, используете класс JFrame, но пусть он НЕ реализует ActionListener. Напишите свой собственный ActionListener и сделайте его экземпляр членом JFrame.Затем, когда вы захотите добавить код события, вы помещаете его в ActionListener.

  • У меня нет опыта работы с этим в Java, но я знаю, что NetBeans поставляется с графическим редактором , который может позаботиться обо всем графическом кодировании в режиме перетаскивания, и есть также плагины Eclipse, которые предлагают эту функцию.Я уверен, что если вы используете какой-либо из этих инструментов, у вас по умолчанию также есть графика и обработка событий.

Надеюсь, это поможет.Если потребуется дополнительная информация даже после поиска в Google и т. Д., Сообщите мне.

0 голосов
/ 09 ноября 2010

Вы можете попробовать MetaWidget framework, автор которого описывает его как :

Metawidget берет ваши существующие объекты домена и создает во время выполнения компоненты пользовательского интерфейса, встроенные в существующую интерфейсную среду:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...