我有一个 JPanel 和一个 JButton 向量,并且想将每个按钮添加到面板中。
我遇到的问题是我有一个变量 btns 表示按钮的向量,但宏函数只是将它视为一个符号,而不是一个向量。有没有办法以某种方式扩展它?
这是代码:
(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)))
关于swing - 用于摆动操作的向量扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8200045/