У меня есть ArrayList <JCheckBox>, который я хочу преобразовать в ArrayList <String> - PullRequest
3 голосов
/ 30 ноября 2011

У меня есть 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 в формате String.

Основная проблема выделена курсивом (с **):

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 ]

4 голосов
/ 30 ноября 2011

Вы не можете добавить JCheckBox к List<String>, типы JCheckBox и String несовместимы.

Я полагаю, вы хотите добавить текст флажка в вашсписок, поэтому вы должны получить его вручную, используя:

titlesArr.add(titel.getText());
1 голос
/ 30 ноября 2011

Предполагая, что метка флажка в точности совпадает с той, что была у вас в списке заголовков, просто используйте метод getText флажка (который получает метку String). Вам не нужно составлять отдельный список проверяемых флажков - просто поместите блок if в свой первый цикл следующим образом:

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

    for (JCheckBox checkbox : filmListe) {
        if (checkbox.isSelected()) {
            titlesArr.add(checkbox.getText());
        }
    }
1 голос
/ 30 ноября 2011

Попробуйте:

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

Теперь titlesArr содержит то, что вы хотели.

...