Ich habe eine ArrayList , die ich in eine ArrayList konvertieren möchte
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! :)
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.