предложения для декларативного программирования GUI на Java - PullRequest
54 голосов
/ 17 апреля 2009

Интересно, есть ли какие-либо предложения для декларативного программирования GUI на Java. (Я ненавижу программное обеспечение для создания и редактирования графических интерфейсов на основе визуального интерфейса, но немного устал от ручного создания экземпляров JPanels и Boxes, JLabels и JLists и т. Д.)

Это мой общий вопрос, но у меня есть два конкретных вопроса о подходах, которые я собираюсь предпринять:

  1. JavaFX: есть ли где-нибудь пример реалистичного отображения графического интерфейса пользователя (например, не кружков и прямоугольников, а списков и кнопок, меток и т. П.) В JavaFX, которое может взаимодействовать с исходным файлом Java, который обращается и обновляет элементы?

  2. Простой старый Swing с чем-то для анализа XML-кода на XUL: кто-нибудь изобрел декларативный синтаксис (например, XUL) для XML для использования с Java Swing? Я полагаю, что это было бы несложно: создать некоторый код на основе STaX, который читает XML-файл, создает иерархию элементов Swing и делает иерархию доступной с помощью некоторой объектной модели. Но я бы предпочел использовать что-то, что хорошо известно, задокументировано и протестировано, чем пытаться самому изобрести такую ​​вещь.

  3. JGoodies Forms - не совсем декларативно, но довольно близко, и мне повезло с JGoodies Binding. Но их синтаксис для Form Layout выглядит довольно загадочно.

edit: много хороших ответов здесь! (И я добавил № 3 выше) Я был бы особенно благодарен за то, что вы слышали о любом опыте использования вами одной из этих платформ для реальных приложений.

p.s. Я попробовал несколько поисков в Google («декларативный java gui»), но просто не знал, что искать.

Ответы [ 14 ]

1 голос
/ 20 апреля 2009

Хотя это не декларативное и ограничено исключительно макетами, вы можете взглянуть на DesignGridLayout , который позволяет программно определять макеты Swing в очень сжатой манере (это открытый код). *

Основные преимущества:

  • легко и быстро выучить.
  • краткий код (1 строка кода на строку компонентов в форме), что также включить простое обслуживание
  • проверка во время компиляции (которая декларативный пользовательский интерфейс не может иметь)
  • уважение к внешнему виду платформы (базовое выравнивание, промежутки между компоненты ...) без каких-либо жестко значение длины
1 голос
/ 17 апреля 2009

Я могу найти следующие примеры того, что вы просите:

0 голосов
/ 11 января 2012

WindowBuilder , это очень хороший плагин, который включает в себя GWT, XWT, SWT, Swing и т. Д.

0 голосов
/ 17 апреля 2009

Как правило, всегда полезно выполнять поиск, когда вы что-то ищете. Это - первая ссылка в Google при поиске "java xml gui"

...