swing操作的向量展开
我有一个JPanel和一个JButtons向量,希望将每个按钮添加到面板中 我遇到的问题是,我有一个代表按钮向量的变量btns,但宏函数只是将其视为符号,而不是向量。有没有办法扩展它 代码如下:swing操作的向量展开,swing,macros,clojure,lisp,Swing,Macros,Clojure,Lisp,我有一个JPanel和一个JButtons向量,希望将每个按钮添加到面板中 我遇到的问题是,我有一个代表按钮向量的变量btns,但宏函数只是将其视为符号,而不是向量。有没有办法扩展它 代码如下: (defmacro add_all [panel btns] ;; help? ) (let [x 10, y 10 btns get_buttons] ;; just a vector of JButton objects (doto (JPanel.)
(defmacro add_all [panel btns]
;; help?
)
(let [x 10, y 10
btns get_buttons] ;; just a vector of JButton objects
(doto (JPanel.)
(.setLayout (GridLayout. x y))
(add-all btns)))
我想将此扩展到:
(doto (JPanel.)
(.setLayout (GridLayout. x y))
(.add (btns 0))
(.add (btns 1))
;; etc
(.add (btns 99)))
不需要宏(事实上,所述问题无法用宏解决)。只需编写一个在面板和一系列按钮上运行的函数:
(defn add-all [panel buttons]
(doseq [button buttons]
(.add panel button)))
我只想插嘴说,使用跷跷板(或其他UI库),这只是
(网格面板:第10列:条目BTN)
。干杯