UI alternative de design cu Groovy/JRuby/Jython sau alte limbi JVM?

Pentru un dezvoltator din eco-sistemul Java, există o mulțime de opțiuni atunci când vine vorba de designul UI. Cele mai cunoscute sunt:

  • Swing (preferat atunci când este utilizat cu Netbeans și constructorul GUI)
  • SWT Eclipse (preferat în majoritate pentru pluginurile Eclipse)

Acum, există vreo cadru sau alternative de proiectare care să vizeze JRuby/Groovy/Jython sau alte limbi JVM "dinamice"?

Unele cadre ale UI sunt straturi peste Swing sau SWT, de exemplu, un cadru poate citi o descriere a unui ecran în xml și poate instanția componentele corespunzătoare Swing.

Dacă cunoașteți un astfel de cadru, dar care vizează limbile "dinamice" ale JVM, aș vrea să le văd și în răspunsurile.

0

3 răspunsuri

Clojure are câteva biblioteci/cadre GUI care arată 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)))

Există, de asemenea, un exemplu de cod exemplu care apare pentru împachetare JavaFX 2.0 în Clojure - din nou, aceasta este mai mult ca un DSL declarativ:

(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
adăugat

Cred că cele două cadre cele mai mature pentru Jruby sunt Monkeybars ( http://monkeybars.rubyforge.org/ ) și Limelight ( http://limelight.8thlight.com/ ).

Monkeybars este o implementare completă a rubricii MVC care poate fi utilizată împreună cu un constructor GUI Swing, în timp ce Limelight merge pentru un cod minim/efect maxim de efect, cum ar fi Shoes.

0
adăugat

Nu este chiar design UI, dar ați putea încerca Grifon .

0
adăugat