ClojureでJavaFX〜Upshotを使ってみる〜

Swingのラッパーである Seesaw と同様に、JavaFXをラップした Upshot を使ってみる。

Upshotのサンプルを動かしてみる

プロジェクト新規作成
lein new fxhello
Upshot の利用

project.clj の :dependencies に以下を追加。(参考:[upshot/upshot "0.0.0-SNAPSHOT"] - Clojars

[upshot "0.0.0-SNAPSHOT"]

依存ライブラリの取得。

cd fxhello
lein deps

このとき、「com.oracle:javafx-runtime:jar:2.0」が見つからないと怒られる場合は、ローカルのMavenリポジトリにjfxrt.jarをインストールする。

lein pom
mvn install:install-file -DgroupId=com.oracle -DartifactId=javafx-runtime -Dversion=2.0 -Dpackaging=jar -Dfile="C:/Program Files/Java/jdk1.7.0_21/jre/lib/jfxrt.jar"
サンプルコードの配置

下記のサンプルコードの内容で src/fxhello/core.clj を置き換え。
https://github.com/daveray/upshot/blob/develop/test/upshot/test/examples/example.clj
ただし、ネームスペースは「upshot.test.examples.example」から「fxhello.core」に変更すること。

実行
lein repl
(use 'fxhello.core)
(-main)