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

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

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

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

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

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

0
добавлено отредактировано
Просмотры: 22

3 ответы

Clojure имеет несколько GUI-библиотек/фреймворков, которые выглядят priomising:

seesaw wraps Swing in a very concise DSL, which could certainly be used to declaratively create GUI interfaces:

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

Incanter provides quite a lot of graphing and visualisation functionality (wrapping JFreeChart among other things). Not quite a general GUI library, but very useful if you're focusing on stats:

;; 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!"))))))
0
добавлено

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

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

0
добавлено

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

0
добавлено