3

我有一个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 格式),其中包含所有选定的复选框。后记我想以字符串格式将 ArrayList 添加到新的 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);*
}

一个小问题的大量代码和文本!但我真的很感谢你的帮助!:)

4

3 回答 3

4

您不能将 a 添加JCheckBox到 a List<String>,类型JCheckBoxString不兼容。

我猜您想将复选框的文本添加到您的列表中,因此您必须手动检索它,使用:

titlesArr.add(titel.getText());
于 2011-11-30T13:15:37.380 回答
1

尝试这个:

ArrayList<String> titlesArr = new ArrayList<String>();
for(JCheckBox checkbox: filmListe)
    if (checkbox.isSelected())
        titlesArr.add(checkbox.getText());

现在titlesArr包含你想要的。

于 2011-11-30T13:29:21.547 回答
1

假设复选框的标签与您最初在标题列表中的标签完全相同,只需使用复选框的getText方法(获取字符串标签)。您不需要单独列出已选中的复选框 - 只需在第一个循环中放置一个 if 块,如下所示:

    ArrayList<String> titlesArr = new ArrayList<String>(filmListe.size());

    for (JCheckBox checkbox : filmListe) {
        if (checkbox.isSelected()) {
            titlesArr.add(checkbox.getText());
        }
    }
于 2011-11-30T13:32:29.840 回答