我有ArrayList<JCheckBox>
我要转换为ArrayList<String>
首先,我喜欢这样。我从文件中获取所有标题并将它们放入新的ArrayList中。后来我创建了一个新的JCheckBox数组,其中包含StringArray中的所有字符串。
ArrayList<String> titler = new ArrayList<String>();
titler.addAll(FileToArray.getName());
ArrayList<JCheckBox> filmListe = new ArrayList<JCheckBox>();
for(String titel:titler){
filmListe.add(new JCheckBox(titel));
}
for(JCheckBox checkbox:filmListe){
CenterCenter.add(checkbox);
}
这就是我要做的事情:首先我创建一个新的ArrayList(仍然是JCheckBox格式),其中包含所选的Checkbox。后记我想以String格式添加到新的ArrayList。
主要问题是斜体(带**):
ArrayList<JCheckBox> selectedBoxes = new ArrayList<JCheckBox>();
for(JCheckBox checkbox: filmListe){
if (checkbox.isSelected()){
selectedBoxes.add(checkbox);
}
ArrayList<String> titlesArr = new ArrayList<String>();
for(JCheckBox titel:selectedBoxes){
*titlesArr.add(titel);*
}
很多代码和文字都有一点问题!但我真的很感谢你的帮助! :)
答案 0 :(得分:4)
您无法将JCheckBox
添加到List<String>
,JCheckBox
和String
类型不兼容。
我想您要将复选框的文本添加到列表中,因此您必须使用以下方法手动检索它:
titlesArr.add(titel.getText());
答案 1 :(得分:1)
试试这个:
ArrayList<String> titlesArr = new ArrayList<String>();
for(JCheckBox checkbox: filmListe)
if (checkbox.isSelected())
titlesArr.add(checkbox.getText());
现在titlesArr
包含您想要的内容。
答案 2 :(得分:1)
假设复选框的标签与您最初在标题列表中的标签完全相同,只需使用复选框的getText
方法(获取String标签)。您不需要单独列出已选中的复选框 - 只需将if块放在第一个循环中,如下所示:
ArrayList<String> titlesArr = new ArrayList<String>(filmListe.size());
for (JCheckBox checkbox : filmListe) {
if (checkbox.isSelected()) {
titlesArr.add(checkbox.getText());
}
}