Gibt es ein Beispiel für einige funktionelle Schwingen oder SWT Verpackung? Oder eine Integration mit JavaFX deklarative GUI-Beschreibung, die leicht umschlossen werden kann s-Ausdrücke etwas Makrologie verwenden?
macht Swing Spaß? Sie sagten, es sei nicht möglich!
– Michael Bylstra
26. Januar 2013 um 4:15 Uhr
Sie müssen nicht bescheiden sein – darauf können Sie sehr stolz sein! +1!
– Mydoghaswürmer
22. April 2013 um 8:41 Uhr
-1: Es gibt einen Fehler in Ihrem Code. Es heißt “Hello, Seesaw” statt “Hello, World”.
– Thomas Eding
5. Februar 2014 um 17:39 Uhr
Wirklich? Schwingen? Beschränkt dies den Entwickler nicht auf die Funktionalität, die Swing bietet, nur auf einer höheren Abstraktionsebene, falls vorhanden? Lässt Clojure die Anwendungen irgendwie weniger veraltet aussehen oder verbessert es irgendwie alle Bereiche, in denen Swing schwach ist? Ich spreche von Bindungen und MVC und all dem “neuen” Zeug, das Swing jetzt per se bietet. Ist es irgendwie durch Sprachfeatures von Clojure behoben?
– Zelphir Kaltstahl
10. Februar 2016 um 1:26 Uhr
Er entschied sich für eine gezielte Abstraktion speziell über Swing. Daran ist nichts falsch …
Viele Dinge in Swing werden durch Unterklassen erledigt, besonders wenn Sie benutzerdefinierte Komponenten erstellen. Dafür gibt es zwei wesentliche Funktionen/Makros: Proxy und Gen-Klasse.
Jetzt verstehe ich, wohin Sie mit dem Lispy-Weg gehen. Ich glaube so etwas gibt es noch nicht. Ich würde dringend davon abraten, ein grandioses GUI-Gebäude-Framework a-la zu bauen CLIM, aber um etwas mehr Lispy zu machen: Beginnen Sie mit dem Schreiben Ihrer Swing-Anwendung und abstrahieren Sie Ihre gemeinsamen Muster mit Makros. Wenn Sie das tun, erhalten Sie möglicherweise eine Sprache, um Ihre Art von GUIs zu schreiben, oder vielleicht einige sehr generische Dinge, die geteilt und erweitert werden können.
Eine Sache, die Sie beim Schreiben der GUIs in Clojure verlieren, ist die Verwendung von Tools wie Matisse. Das kann ein starker Hinweis darauf sein, einige Teile in Java (die GUI) und einige Teile in Clojure (die Logik) zu schreiben. Was eigentlich Sinn macht, da Sie in der Logik eine Sprache für Ihre Art von Logik mithilfe von Makros erstellen können, und ich denke, dass es dort mehr zu gewinnen gibt als mit der GUI. Natürlich hängt es von Ihrer Anwendung ab.
Mach dir keine Sorgen, Mattisse zu verlieren. Du kannst den … benutzen miglayout.comdas so leistungsfähig ist, dass Sie die Layouts von Hand erstellen können.
– tomjen
1. Oktober 2009 um 18:37 Uhr
Sie können Matisse mit Clojure verwenden, da der generierte Code nur Java-Code ist, auf den Clojure nahtlos zugreifen kann. Irgendwo gibt es dazu tatsächlich eine Anleitung…
– Reyn
1. Oktober 2009 um 22:10 Uhr
Ich frage mich, wann wir den ersten Clojure-Ausgabe-GUI-Designer bekommen. Aufgrund der Homoikonizität sollte der generierte Code nicht einmal schlecht sein!
– mike3996
24. November 2010 um 19:04 Uhr
Bisher hat es noch niemand vorgeschlagen, also werde ich: Browser als UI-Plattform. Sie könnten Ihre App in Clojure schreiben, einschließlich eines HTTP-Servers, und dann die Benutzeroberfläche mit allem von HTML bis entwickeln Schluckauf, ClojureScript und jede der Milliarden von JS-Bibliotheken, die Sie benötigen. Wenn Sie ein konsistentes Browserverhalten und ein “Desktop-App-Look’n’Feel” wünschen, können Sie dies tun Chrome mit Ihrer App bündeln.
So scheint es zu gehen Leuchttisch wird ausgeliefert.
Und natürlich würde es sich lohnen, sich das anzusehen Interoperabilität Abschnitt der Website von clojure.
Ja, ich weiß, dass Sie direkt auf Swing zurückgreifen können, aber ich habe gefragt, ob es einen lispyeren Weg gibt, dies zu tun.
– Markus
24. Oktober 2008 um 12:54 Uhr
Beachten Sie auch, dass Sie in den neueren Versionen von Closure eine . vor den Member-Funktionsaufrufen im Todo-Block.
– Jeroen Dirks
1. Oktober 2009 um 17:41 Uhr
Philipp Augusto
Es gibt einen Wrapper für MigLayout in Clojure Contrib. Sie können auch einen Blick darauf werfen dieses Wesentliche. Ich stelle grundsätzlich den Code auf, den ich schreibe, während ich Swing/Miglayout lerne.
Das Beispiel von dsm wurde mit contrib.swing-utils auf eine lispelige Weise neu geschrieben
Ja, ich weiß, dass Sie direkt auf Swing zurückgreifen können, aber ich habe gefragt, ob es einen lispyeren Weg gibt, dies zu tun.
– Markus
24. Oktober 2008 um 12:54 Uhr
Beachten Sie auch, dass Sie in den neueren Versionen von Closure eine . vor den Member-Funktionsaufrufen im Todo-Block.
– Jeroen Dirks
1. Oktober 2009 um 17:41 Uhr
Efrain Bergillos
Ich würde eher zu clojurefx greifen, es ist etwas voreilig, aber es funktioniert und spart Ihnen Zeit.
Ich habe meine GUI mit seesaw gestartet und dann eine andere Komponente in clojurefx ausprobiert.
Ich habe beide beendet und bin überzeugt, dass ich die Wippe in clojurefx umgestalten werde.
Schließlich ist JavaFX der Weg in die Zukunft.
Es fühlt sich leichter an als eine Wippe. Oder zumindest schreiben..
Bindungen funktionieren, Listener funktionieren, die meisten Komponenten funktionieren, ansonsten verwenden Sie einfach eines der Makros, um einen Konstruktor für diesen speziellen Fall zu erstellen und die Arbeit zu erledigen. Oder schreiben Sie einige Methoden in Java, wenn Sie es schwierig finden, und bitten Sie um Hilfe, um clojurefx zu verbessern.
Der Typ, der clojurefx geschrieben hat, ist im Moment beschäftigt, aber Sie können das Projekt forken und einige Korrekturen vornehmen.
Hat JavaFX die Probleme gelöst, noch nicht sehr nativ auszusehen? Ernsthafte Frage, denn als ich es zum ersten Mal überprüfte, war es lange her und es sah weniger korrekt aus als Swing.
– Hakanai
9. August 2017 um 1:05 Uhr
13426300cookie-checkWas ist der beste Weg, um GUIs in Clojure zu erstellen?yes