在Clojure中执行GUI的最佳方法是什么?

2022-08-31 07:31:12

Clojure中执行GUI的最佳方法是什么?

有没有一些功能性SwingSWT包装器的例子?或者与JavaFX声明性GUI描述进行一些集成,这些描述可以使用一些macrology轻松包装成s表达式

任何教程?


答案 1

我会谦虚地建议跷跷板

这是一个基于REPL的教程,假设没有Java或Swing知识。


跷跷板很像@tomjen所暗示的那样。这是“你好,世界”:

(use 'seesaw.core)

(-> (frame :title "Hello"
       :content "Hello, Seesaw"
       :on-close :exit)
  pack!
  show!)

这是@Abhijith和@dsm的例子,翻译得很直白:

(ns seesaw-test.core
  (:use seesaw.core))

(defn handler
  [event]
  (alert event
    (str "<html>Hello from <b>Clojure</b>. Button "
      (.getActionCommand event) " clicked.")))

(-> (frame :title "Hello Swing" :on-close :exit
           :content (button :text "Click Me" :listen [:action handler]))
  pack!
  show!)

答案 2

Stuart Sierra最近发表了一系列关于GUI-development with clojure(和swing)的博客文章。从这里开始:http://stuartsierra.com/2010/01/02/first-steps-with-clojure-swing


推荐