Go to file
Daniel Ziltener 4e2422d29f Manual draft. 2017-08-01 16:43:10 +00:00
doc Manual draft. 2017-08-01 16:43:10 +00:00
src/clojurefx Added controllergen for actions. 2017-08-01 16:04:33 +00:00
test/clojurefx no message 2017-01-07 17:48:17 +00:00
.hgignore Initial commit. The start of something big... 2015-01-15 18:19:12 +00:00
.projectile Some extends and fully working declarative scenegraph creation. 2015-01-16 03:27:37 +00:00
LICENSE Initial commit. The start of something big... 2015-01-15 18:19:12 +00:00
README.md Bugfixes 2017-01-15 10:24:55 +00:00
manual.texi Manual draft. 2017-08-01 16:43:10 +00:00
project.clj Added controllergen for actions. 2017-08-01 16:04:33 +00:00

README.md

License Clojars Gratipay Flattr this

ClojureFX

[clojurefx "0.0.23"]

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