Swing Generator - PullRequest
       59

Swing Generator

1 голос
/ 12 ноября 2009

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

Но я верю, что сегодня должно быть проще, должны быть инструменты.
Я бы хотел использовать какой-нибудь генератор, или утилиту, или даже фреймворк.
Я знаю, что в Eclipse есть несколько плагинов, а в Netbeans есть хороший встроенный инструмент. Я также слышал хорошие вещи о Jide Framework.

Но, тем не менее, я не знаю ни одного из них.

Существует ли инструмент / Утилита / Генератор / Framework, который вы использовали и действительно помогли вам?

Очевидно, я бы предпочел что-то бесплатное, но если вы знаете что-то действительно хорошее и стоит денег, это тоже может сработать.

Спасибо.

Ответы [ 7 ]

2 голосов
/ 12 ноября 2009

На самом деле более быстрый способ написания Swing-фреймов, который я нашел до сих пор, - это использовать Groovy SwingBuilder , но для его использования вы должны включить в свой проект флягу groovy. Это пример, взятый с их сайта, в основном это синктактический сахар, но он помогает:

def frame = swing.frame(title:'Frame', defaultCloseOperation:JFrame.EXIT_ON_CLOSE, pack:true, show:true) {
    vbox {
        textlabel = label("Click the button!")
        button(
            text:'Click Me',
            actionPerformed: {
                count++
                textlabel.text = "Clicked ${count} time(s)."
                println "Clicked!"
            }
        )
        widget(sharedPanel())
        widget(sharedPanel())
   }
}

В противном случае существует некоторый «визуальный» подход к проблеме, но они не позволяют вам так быстро интегрироваться с написанным вами интерфейсом (например, jvider ), в NetBeans и Eclipse есть несколько плагинов для выполнения грязная работа, но, как и прежде, вы не можете так легко интегрироваться.

2 голосов
/ 06 апреля 2011

Мое предложение будет WindowBuilder Pro . Это GUI дизайнер, который поставляется как плагин для Eclipse IDE.

Вы можете использовать его для генерации графических интерфейсов Swing, SWT или GWT и даже для генерации кода Eclipse RCP, если вам нужно. Я должен сказать, что это работает довольно хорошо для меня. Однако я не использовал его для генерации кода Swing, так как вместо этого предпочитаю работать с SWT.

2 голосов
/ 12 ноября 2009

Уже несколько лет я использую встроенный в NetBeans редактор форм Matisse. Он имеет преимущество в том, что встроен в IDE, поэтому редактирование форм и генерация кода довольно просты. Если вы новичок в Swing, это может стать большим стимулом (если вы продолжаете использовать NetBeans в качестве вашей IDE).

Однако есть некоторые проблемы:

  1. Вы не можете легко переместить форму в другую среду разработки. Сгенерированный код может работать, но сами данные формы хранятся в файле XML.
  2. Если еще два человека редактируют форму одновременно, в SVN / CVS могут возникнуть конфликты, которые практически невозможно примирить. XML не очень удобен для чтения человеком.
  3. В прошлом я обнаружил, что XML-файл формы может сам себя повредить, что приведет к ошибкам генерации форм.
  4. Редактор форм может иногда иметь собственный разум, разрушая ваше расположение, когда вы делаете что-то столь же простое, как изменение размера элемента управления.

Несмотря на все вышесказанное, я продолжал использовать его, так как ничто иное не показалось мне привлекательным.

1 голос
/ 29 января 2010

Могу ли я смиренно предложить Metawidget?

Для разработки пользовательского интерфейса требуется другой подход - устраняется большая часть трудоемкой, подверженной ошибкам, но при этом сохраняется гибкость традиционных наборов инструментов. Он интегрируется с существующим внешним интерфейсом (в вашем случае Swing) и внутренним (я полагаю, Java) и работает во время выполнения (без генерации кода).

Здесь есть несколько коротких вступительных видео:

http://metawidget.org/videos.html

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

С уважением,

Ричард.

1 голос
/ 12 ноября 2009

Я бы пошел с Matisse, если вы не хотите использовать GUI Builder, и есть недостатки, как упомянул Джейсон, но вам также нужно включить файл JAR, который используется макетами Matisse, это может или не может быть проблема.

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

Так что я говорю: держитесь подальше от разработчиков графического интерфейса, вы создадите более качественный и более обслуживаемый пользовательский интерфейс, и через некоторое время и опыт вам не захочется использовать графический интерфейс. Просто начните с некоторых базовых учебников по Swing по макету.

1 голос
/ 12 ноября 2009

Eclipse's Visual Swing является многообещающим выскочкой. Это не самая стабильная вещь в мире, но она выполняет все формы в коде, поэтому нет отдельных файлов, которые трудно прочитать и объединить в системе контроля версий. Когда вы впервые попробуете это, нужно привыкнуть. Но как только вы научитесь обходить ошибки, вы довольно быстро разрабатываете графический интерфейс Swing.

1 голос
/ 12 ноября 2009

С точки зрения GUI Builders, NetBeans и IDEA (теперь с открытым исходным кодом с 9.0 Beta) имеют бесплатные GUI Builders.

У GUI Builders есть все недостатки, с которыми говорил Джейсон. Если вы хотите хорошо контролировать происходящее, но все же хотите, чтобы что-то вменяемое написало сложный графический интерфейс от руки, посмотрите MigLayout .

...