Guten Abend,
Ich habe erstmals mit einer Library (Apache POI) gearbeitet und meine Versuche, eine riesige Excel Tabelle durch Eingaben in JTextFields damit zu erstellen funktionierten auch wunderbar. Nun kam ich also auf die Idee, dass der Benutzer vor dem richtigen Start des Programms (also wenn das JPanel mit den vielen Textfeldern sichtbar wird) noch den Dateinamen eingeben soll (z.B. Liste55 wenn die Exceldatei später Liste55.xls heißen soll).
Doch gerade an diesem Anfängerproblem scheitere ich momentan. Der eingegebene String wird später bei der Speichermethode nicht mehr erkannt bzw. wenn ich ihn in der Konsole ausgeben möchte steht da immer: null.xls
Ich hoffe, dass ihr mir helfen könnt
Hier die relevanten Klassen bzw. Ausschnitte:
Ich habe erstmals mit einer Library (Apache POI) gearbeitet und meine Versuche, eine riesige Excel Tabelle durch Eingaben in JTextFields damit zu erstellen funktionierten auch wunderbar. Nun kam ich also auf die Idee, dass der Benutzer vor dem richtigen Start des Programms (also wenn das JPanel mit den vielen Textfeldern sichtbar wird) noch den Dateinamen eingeben soll (z.B. Liste55 wenn die Exceldatei später Liste55.xls heißen soll).
Doch gerade an diesem Anfängerproblem scheitere ich momentan. Der eingegebene String wird später bei der Speichermethode nicht mehr erkannt bzw. wenn ich ihn in der Konsole ausgeben möchte steht da immer: null.xls
Ich hoffe, dass ihr mir helfen könnt
Hier die relevanten Klassen bzw. Ausschnitte:
Java:
public class SchreibenKlasse {
HSSFWorkbook datei = new HSSFWorkbook();
String dateiname;
public SchreibenKlasse() {
//...
// hier werden die ganzen Zellen erstellt etc.
//...
}
public void getDateiname(String dateiname){
this.dateiname = dateiname;
System.out.println(dateiname + ".xls"); //hier wird noch der richtige Name ausgegeben
}
public void speichern() {
try {
System.out.println(dateiname + ".xls"); //hier wird immer null.xls ausgegeben
FileOutputStream output = new FileOutputStream(dateiname + ".xls");
datei.write(output);
output.close();
} catch (Exception e) {
}
}
}
Java:
public class FrameClass extends JFrame {
GiveName gi = new GiveName();
SchreibenKlasse sk = new SchreibenKlasse();
public FrameClass() {
//...
//...
//...
gi.nameButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sk.getDateiname(gi.name.getText());
dtn= gi.name.getText();
if (dtn.isEmpty()) {
JOptionPane.showMessageDialog(null,
"Bitte Dateinamen eingeben!");
} else {
if (gi.auswahl == 1) {
remove(gi);
add(fi);
repaint();
}
if (gi.auswahl == 2) {
remove(gi);
// folgt noch
repaint();
}
}
}
});
}
public int ausw1() {
return gi.auswahl = 1;
}
public int ausw2() {
return gi.auswahl = 2;
}
}