Clojure 1.11.1からJava 2Dを利用する

ClojureからJava 2Dを利用するようにしたいが良く分からなかった。 探してみるとCX's Hello, World!のHello, Java 2D(Clojure) World!に 例が掲載されていた。 ただ、そのままではOpenJDK 17.0.4で動かしたClojure 1.11.1では動かなかった。 その部分を動くようにして、フォントの設定をしたかったのでそれを追加してみた。

; From http://cx20.main.jp/blog/hello/2012/12/05/hello-java2d-clojure-world/
; Modified for Clojure 1.11.1 by Ryo ONODERA <ryo@tetera.org>
; Run: clj -M java2d.clj

(import
  (javax.swing JFrame)
  (javax.swing JPanel)
  (java.awt Graphics)
  (java.awt Graphics2D)
  (java.awt Font)
)

(defn create-panel []
  (proxy [JPanel] []
    (paintComponent [g]
      (.setFont ^Graphics2D g (Font. "Droid Sans" Font/PLAIN 72))
      (.drawString ^Graphics2D g "Hello, Java 2D World!" 0 100)
)))

(def panel
  (create-panel))

(def frame
  (JFrame.))

(doto frame
  (.setDefaultCloseOperation
    javax.swing.WindowConstants/EXIT_ON_CLOSE)
  (.add panel)
  (.setSize 640 480)
  (.setTitle "Hello, World")
  (.setLocation 100 100)
  (.setVisible true))

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

NetBSDからCanon LBP3100に印刷する

この記事は、 NetBSD Advent Calendar 2024 の2日目の記事です。 Canon LBP3100というプリンターについて Canon LBP3100 というプリンターは。Canonの安価なwinprinterです。 私は2015年3月に...