Альтернативы дизайна пользовательского интерфейса с Groovy / JRuby / Jython или другими языками JVM? - PullRequest
3 голосов
/ 18 сентября 2008

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

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 19 сентября 2008

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

2 голосов
/ 15 февраля 2012

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

seesaw оборачивает 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!"))))))
0 голосов
/ 02 сентября 2010

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

)

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

...