UI-Design-Alternativen mit Groovy/JRuby/Jython oder anderen JVM-Sprachen?

Für einen Entwickler im Java-Ökosystem gibt es eine Reihe von Möglichkeiten, wenn es um UI-Design geht. Die bekanntesten sind:

  • Swing (bevorzugt bei Verwendung mit Netbeans und seinem GUI-Builder)
  • Eclipse SWT (am meisten bevorzugt für Eclipse-Plug-ins)

Gibt es nun irgendwelche Frameworks oder Designalternativen, die auf JRuby/Groovy/Jython oder andere "dynamische" JVM-Sprachen abzielen?

Einige UI-Frameworks sind Layer über Swing oder SWT. Beispielsweise könnte ein Framework eine Beschreibung eines Bildschirms in xml lesen und die entsprechenden Swing-Komponenten instanziieren.

Wenn Sie ein Framework wie dieses kennen, das aber auf JVM "dynamische" Sprachen abzielt, würde ich sie gerne auch in den Antworten sehen.

0
hinzugefügt bearbeitet
Ansichten: 11

3 Antworten

Clojure hat ein paar GUI-Bibliotheken/Frameworks, die priomisierend aussehen:

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)))

Es gibt auch einen einfachen Beispielcode, der für zum Einbetten von JavaFX angezeigt wird 2.0 in Clojure - wieder ist das eher wie ein deklaratives 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
hinzugefügt

Ich denke, die beiden ausgereiftesten Frameworks für Jruby sind Monkeybars ( http://monkeybars.rubyforge.org/ ) und Limelight ( http://limelight.8thlight.com/ ).

Monkeybars ist eine vollwertige MVC-Implementierung, die in Verbindung mit einem Swing-GUI-Builder verwendet werden kann, während Limelight für einen minimalen Code/maximalen Effekt-Verhältnis wie Shoes sorgt.

0
hinzugefügt

Nicht genau UI-Design, aber Sie könnten Griffon ausprobieren.

0
hinzugefügt