;file useswing.clj
;コンパイルできる
;Javaコマンドで実行できる
(ns useswing
(:gen-class))
(import '(javax.swing JFrame JButton JScrollPane JTextArea)
'(java.awt BorderLayout Dimension)
'(java.awt.event ActionListener))
(defn foo []
(let [frame (JFrame. "Foo")
text-area (JScrollPane. (JTextArea. "-"))
close-button (JButton. "Close")]
(doto text-area
(.setPreferredSize
(Dimension. 640 480)))
(doto close-button
(.addActionListener
(proxy [ActionListener] []
(actionPerformed [evt]
(.setVisible frame false)
(System/exit 0)))))
(let [c (.getContentPane frame)]
(doto c
(.add text-area BorderLayout/CENTER)
(.add close-button BorderLayout/NORTH)))
(doto frame
(.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
(.setPreferredSize (Dimension. 1024 768))
(.pack)
(.setVisible true)
)))
(defn -main [& args]
(foo))