我有一个ArrayList <jcheckbox>,我想转换为ArrayList <string> </string> </jcheckbox>

时间:2011-11-30 13:12:24

标签: java swing arraylist jcheckbox

我有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);*
}

很多代码和文字都有一点问题!但我真的很感谢你的帮助! :)

3 个答案:

答案 0 :(得分:4)

您无法将JCheckBox添加到List<String>JCheckBoxString类型不兼容。

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

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());
        }
    }