我正在编写代码以用“行”控件填充 java.awt.GridBagLayout。对于每一行,我都有一个表单的方法调用
(.add panel CONTROL (fill-gbc 0 INDEX ...))
其中 CONTROL 是放置在这一行的 Swing 控件(即(JLabel. "Hello")
:), INDEX 是该gridy
控件的(fill-gbc
填充单个可变GridBagContraints
对象并返回它——它接受关键字可选参数gridwidth
,gridheight
等)
我想创建行内容((.add panel ...)
调用)的向量并用于(map-indexed ...)
填充 INDEX 值。
我能想出的唯一方法是使每个(.add panel ...)
函数都成为一个参数(索引)的匿名函数:
(dorun (map-indexed #(%2 %1)
[#(.add panel (.JLabel "Hello") (fill-gbc 0 %)) ...]))
有没有更好的方法来做到这一点,也许用一个宏(我需要在我的应用程序中多次使用这种模式来处理各种对话框)?