Альтернативы дизайна пользовательского интерфейса с помощью Groovy / JRuby / Jython или других языков JVM?

Для разработчика экосистемы Java есть несколько вариантов дизайна пользовательского интерфейса. Наиболее известны:

  • Swing (предпочтительно при использовании с Netbeans и его построителем графического интерфейса)
  • SWT Eclipse (в основном предпочтительнее для подключаемых модулей Eclipse)

Теперь, есть ли какие-либо фреймворки или альтернативы дизайну, которые нацелены на JRuby / Groovy / Jython или другие «динамические» языки JVM?

Некоторые инфраструктуры пользовательского интерфейса являются слоями над Swing или SWT, например, инфраструктура может читать описание экрана в XML и создавать экземпляры соответствующих компонентов Swing.

Если вы знаете подобный фреймворк, но он нацелен на «динамические» языки JVM, я бы тоже хотел видеть их в ответах.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
1 657
3

Ответы 3

Не совсем дизайн пользовательского интерфейса, но вы можете попробовать Грифон.

Я думаю, что двумя наиболее зрелыми фреймворками для Jruby являются Monkeybars (http://monkeybars.rubyforge.org/) и Limelight (http://limelight.8thlight.com/).

Monkeybars - это полная рубиновая реализация MVC, которую можно использовать в сочетании с построителем графического интерфейса Swing, в то время как Limelight стремится к минимальному соотношению кода / максимальному эффекту, как и Shoes.

Clojure имеет несколько библиотек / фреймворков графического интерфейса, которые выглядят приоритетно:

качели превращает Swing в очень сжатый DSL, который, безусловно, можно использовать для декларативного создания интерфейсов GUI:

(defn -main [& args]
  (invoke-later 
    (-> (frame :title "Hello", 
           :content "Hello, Seesaw",
           :on-close :exit)
     pack!
     show!)))

Incanter предоставляет довольно много функций построения графиков и визуализации (помимо прочего, обертывание JFreeChart). Не совсем обычная библиотека графического интерфейса, но очень полезная, если вы сосредотачиваетесь на статистике:

;; show a histogram of 1000 samples from a normal distribution
(view (histogram (sample-normal 1000)))

Также появляется отличный пример кода для упаковка JavaFX 2.0 в Clojure - опять же, это больше похоже на декларативный DSL:

(defn -start [app stage]
   (eval
     (fx Stage :visible true :width 300 :height 200 :title "hello world"
         :scene (fx Scene
                  (fx BorderPane :left (fx Text "hello")
                      :right (fx Text "Right")
                      :top (fx Text "top")
                      :bottom (fx Text "Bottom")
                      :center (fx Text "In the middle!"))))))

Другие вопросы по теме