Frage

ich habe ein ArrayList<JCheckBox> dass ich zu einem konvertieren möchte ArrayList<String>

Zuerst mag ich das. Ich bekomme alle meine Titel aus einer Datei und stecke sie in eine Neuarraylist. Afterwords mache ich ein neues jCheckbox -Array, das alle Zeichenfolgen aus dem StringArray enthält.

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

Dies ist, was ich versuche zu tun: Zuerst erstelle ich eine Neuarraylist (immer noch im JCheckbox -Format), das alle die ausgewählten Kontrollkästchen enthält. Afterwords Ich möchte die Neuarraylist in einem Zeichenfolgenformat hinzufügen.

Das Hauptproblem ist kursiv (mit **):

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

Viel Code und Text für ein kleines Problem! Aber ich schätze Ihre Hilfe sehr! :)

War es hilfreich?

Lösung

Unter der Annahme, dass das Label der Checkbox genau das gleich ist wie das, was Sie ursprünglich in Ihrer Liste der Titel hatten, verwenden Sie einfach die Kontrollkiste des Kontrollkästchens getText Methode (die die String -Etikett abruft). Sie müssen keine separate Liste der Kontrollkästchen erstellen, die überprüft werden. Legen Sie einfach einen If -Block in Ihre erste Schleife wie folgt:

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

    for (JCheckBox checkbox : filmListe) {
        if (checkbox.isSelected()) {
            titlesArr.add(checkbox.getText());
        }
    }

Andere Tipps

Sie können keine hinzufügen JCheckBox zu einem List<String>, die Typen JCheckBox und String sind inkompatibel.

Ich denke, Sie möchten den Text des Kontrollkästchens in Ihre Liste hinzufügen, damit Sie ihn mit:

titlesArr.add(titel.getText());

Versuche dies:

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

Jetzt titlesArr enthält, was Sie wollten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top