1.9 KiB
1.9 KiB
ClojureFX
[clojurefx "0.1.0-SNAPSHOT"]
Note: This is a complete rewrite, no code has been taken over from the old version on GitHub, and I'm taking a radically different approach.
A Clojure extension to make working with JavaFX simpler and more idiomatic. It allows you to naturally work with stock JavaFX components through use of extended protocols. Should a feature be missing you can easily extend ClojureFX in your own codebase or just fall back to standard JavaFX methods.
Features
This is in a very early state, so there isn't much yet. Take a look at the ClojureFX wiki.
- Declarative EDN GUI structure compilation
- FXML loading and scripting
- Simplified event binding (bind a Clojure function to an event trigger)
- Turn a scene graph into a flat id-node-map and/or get nodes by id out of a scene graph
Declarative UI programming
(def superbutton (compile [Button {:text "Close"
:action #'close-handler}]))
(compile [VBox {:id "TopLevelVBox"
:children [Label {:text "Hi!"}
Label {:text "I'm ClojureFX!"}
HBox {:id "HorizontalBox"
:children [Button {:text "OK"}
superbutton]}]}])