Hallo,
ich habe (mal wieder) ein kleines Problem. Ich versuche aus einem Unterordner die Namen von .xml-Dateien in ein Array zu packen und diese dann in einem Dropdown-Menü (bzw. ein JComboBox) ausgeben zu lassen.
Das eigentliche Problem: In diesem besagten Unterordner liegen schon zwei Dateien diesen Typs, aber Java findet sie nicht. Das Merkwürdige ist, dass das fast identische Prozedere mit .csv-Dateien funktioniert...
Hier mal der Quellcode für die .xml-Dateien:
Es handelt sich hierbei um eine ArrayIndexOutOfBoundsException. Zum vergleich mal der funktionierende Code für .csv-Dateien:
Ich wär über jede Hilfe sehr froh
Gruß Devilness
ich habe (mal wieder) ein kleines Problem. Ich versuche aus einem Unterordner die Namen von .xml-Dateien in ein Array zu packen und diese dann in einem Dropdown-Menü (bzw. ein JComboBox) ausgeben zu lassen.
Das eigentliche Problem: In diesem besagten Unterordner liegen schon zwei Dateien diesen Typs, aber Java findet sie nicht. Das Merkwürdige ist, dass das fast identische Prozedere mit .csv-Dateien funktioniert...
Hier mal der Quellcode für die .xml-Dateien:
Code:
public void createLoadFrame(Container pane){ // Erstellt eine neuen NewFrame
pane.setLayout(null);
// Die Buttons
okay = new JButton("Okay");
cancel = new JButton("Abbruch");
pane.add(okay);
pane.add(cancel);
Insets insets = pane.getInsets();
Dimension size = okay.getPreferredSize();
okay.setBounds(75 + insets.left, 125 + insets.top,
size.width, size.height);
okay.addActionListener(this);
okay.setActionCommand("loadkay");
size = cancel.getPreferredSize();
cancel.setBounds(150 + insets.left, 125 + insets.top,
size.width, size.height);
cancel.addActionListener(this);
cancel.setActionCommand("can");
// Dropdown für Quelldateien
File userdir = new File("./XML");
ArrayList<String> files = new ArrayList<String>();
for (String entry : userdir.list(new TxtFilenameFilter())) {
files.add(entry);
}
System.out.println("Anzahl der gefundenen Dateien " + files.size());
int fSize = files.size();
String[] fileArray = new String[fSize];
for(int i = 0; i < fSize; i++) {
fileArray[i] = files.get(i);
System.out.println(i + ": " + fileArray[i]);
}
comboVar = fileArray[0];
listXML = new JComboBox(fileArray);
pane.add(listXML);
listXML.setSelectedIndex(0);
size = listXML.getPreferredSize();
listXML.setBounds(25 + insets.left, 25 + insets.top,
size.width, size.height);
listXML.addActionListener(this);
listXML.setActionCommand("combo");
System.out.println("Creating loading frame... done!");
}
Es handelt sich hierbei um eine ArrayIndexOutOfBoundsException. Zum vergleich mal der funktionierende Code für .csv-Dateien:
Code:
public void createNewFrame(Container pane){ // Erstellt eine neuen NewFrame
pane.setLayout(null);
// Die Buttons
okay = new JButton("Okay");
cancel = new JButton("Abbruch");
pane.add(okay);
pane.add(cancel);
Insets insets = pane.getInsets();
Dimension size = okay.getPreferredSize();
okay.setBounds(75 + insets.left, 125 + insets.top,
size.width, size.height);
okay.addActionListener(this);
okay.setActionCommand("newkay");
size = cancel.getPreferredSize();
cancel.setBounds(150 + insets.left, 125 + insets.top,
size.width, size.height);
cancel.addActionListener(this);
cancel.setActionCommand("can");
// Dropdown für Quelldateien
File userdir = new File("./CSV");
ArrayList<String> files = new ArrayList<String>();
for (String entry : userdir.list(new TxtFilenameFilter())) {
files.add(entry);
}
System.out.println(files.size());
int fSize = files.size();
String[] fileArray = new String[fSize];
for(int i = 0; i < fSize; i++) {
fileArray[i] = files.get(i);
System.out.println(i + ": " + fileArray[i]);
}
comboVar = fileArray[0];
listFiles = new JComboBox(fileArray);
pane.add(listFiles);
listFiles.setSelectedIndex(0);
size = listFiles.getPreferredSize();
listFiles.setBounds(25 + insets.left, 25 + insets.top,
size.width, size.height);
listFiles.addActionListener(this);
listFiles.setActionCommand("combo");
// Feld für Dateinamen der Zieldatei eingeben
input = new JTextField(2);
pane.add(input);
input.setBounds(25 + insets.left, 75 + insets.top, 100, 25);
System.out.println("Creating new frame... done!");
}
Ich wär über jede Hilfe sehr froh
Gruß Devilness