具有GridBagLayout索引的Clojure序列
我正在编写代码来填充带有“行”控件的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 %)) ...]))
有没有更好的方法来做到这一点,也许使用宏(我的应用程序中的各种对话框需要多次这种模式)?
没有找到相关结果
已邀请:
1 个回复
犁攀富
您只需传递参数即可获得任何不同的信息。 此外,我写了一个小宏来为容器添加一堆东西。
那就让你写这样的东西:
在这种情况下,不确定这对你是否有帮助,但它可能是。