【发布时间】:2016-06-28 09:05:57
【问题描述】:
我有 3 个复选框并计划添加更多,我需要确定它是否被选中。所以我所做的就是将它们放在 JCheckBox 的 ArrayList 中。顺便说一句,我正在使用 SMALLINT apache derby 数据类型,而我使用 preparedStatement.getBoolean();
ArrayList<JCheckBox> homeCbxs = new ArrayList<>();
homeCbxs.add(updateUserNameCheckBox); // 0
homeCbxs.add(updatePasswordCheckBox); // 1
homeCbxs.add(updatePhotoCheckBox); // 2
int x = 0;
for(JCheckBox cb : homeCbxs){
Boolean bool;
bool = cb.isSelected();
//preparedStatement here, ps.setInt(x,bool)
x++;
}
我想也许我可以使用getComponents() 方法返回一个组件数组,这样我就可以在面板中获取所有复选框。
也许像,
ArrayList<JCheckBox> homeCbxs = homePermssionsCheckBoxPanel.getComponents();
而不是一一添加,
homeCbxs.add(updateUserNameCheckBox); // 0
homeCbxs.add(updatePasswordCheckBox); // 1
homeCbxs.add(updatePhotoCheckBox); // 2
但是,问题是ArrayList<JComponents> 不接受数组。我收到一条错误消息:不兼容的类型:Component[] 无法转换ArrayList<JCheckBox>
你有什么建议吗?投射或进行一些转换的任何解决方法。我只是想缩短代码行。 :D
另外,我想问一下getComponents() 是否将 0 指定为其数组的第一个索引。
如果有任何帮助,我将不胜感激。
【问题讨论】:
标签: java swing arraylist jcomponent