Hallöchen, ich zerbreche mir grad mein Kopf und zwar habe ich folgende situation:
-JComboBox
-File[]
-ArrayList<File>
-JLabel
ich lese alle Dateien eines Verzeichnisses aus und füge diese einem File[] Array hinzu, über eine for/each schleife füge ich der ComboBox jeweils die Namen der Dateien hinzu:
Codeausschnitt
Funktioniert bis hierhin soweit super !
nun möchte ich allerdings je nach gewähltem "Item" in der ComboBox ,über einen (Buffered)FileReader die jeweilige Datei , bzw. die erste Zeile in der Datei ausgelesen wird.
mein Ansatz :
Ausserdem bin ich mir nicht sicher ob der ItemListener auch wirklich die richtige Wahl für diesen Fall ist, hat jemand noch einen Tipp oder liege ich vollkommen daneben ? :rtfm:
-JComboBox
-File[]
-ArrayList<File>
-JLabel
ich lese alle Dateien eines Verzeichnisses aus und füge diese einem File[] Array hinzu, über eine for/each schleife füge ich der ComboBox jeweils die Namen der Dateien hinzu:
Codeausschnitt
Java:
try{
fileArray = new File("H:/Apps/Test/TestOrdner/").listFiles();
for(File a : fileArray){
comboModel.addElement(a.getName()); // liefert mir jeweils nur den Dateinamen
}
Funktioniert bis hierhin soweit super !
nun möchte ich allerdings je nach gewähltem "Item" in der ComboBox ,über einen (Buffered)FileReader die jeweilige Datei , bzw. die erste Zeile in der Datei ausgelesen wird.
mein Ansatz :
Java:
comboModel = new DefaultComboBoxModel<String>();
box = new JComboBox<String>(comboModel);
box.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent item) {
if(item.getSource()==comboModel.getSelectedItem()); // ebenfalls nur ein Ansatz ?!
/* Hier bin ich mir noch unsicher....
* Die ComboBox(das Model) enthält ja nur Strings, welche "eigentlich"
* ja jeweils für einen Dateinamen in meinem Verzeichnis
* stehen.
* Theoretisch müsste ich nun Prüfen ob in meinem Verzeichnis,
* eine Datei mit Namen des gewählten Items vorhanden ist, oder ? */
}
});
Ausserdem bin ich mir nicht sicher ob der ItemListener auch wirklich die richtige Wahl für diesen Fall ist, hat jemand noch einen Tipp oder liege ich vollkommen daneben ? :rtfm: