Hallöchen!
Ich hab' ein kleines Problem, für das ich einfach keine Lösung finde.
Und zwar habe ich ein GUI mit einigen JTextFields geschrieben und das, was dort eingegeben wird, soll in eine .txt Datei gespeichert werden. Wie das grundsätzlich funktioniert, weiß ich, aber es funktioniert nicht so wirklich. Es wird zwar eine Datei angelegt, auch mit dem richtigen Namen, aber wenn man sie öffnet ist sie leer!
Entweder bin ich das ganze komplett falsch angegangen oder es liegt daran, dass das Speichern in einer anderen Methode ist, als das Eingeben... hier einfach mal einige Auszüge aus meinem Code, vielleicht fällt jemandem was auf. D:
und dann
Beides befindet sich natürlich in sowas
Wahrscheinlich liegt es daran, dass das Programm nicht wirklich auf die Eingabe zugreifen kann?? Ich hab keine Ahnung, was ich ändern muss, damit es funktioniert.
Wenn jemand eine Idee hat würde ich mich sehr freuen!
lg
Ich hab' ein kleines Problem, für das ich einfach keine Lösung finde.
Und zwar habe ich ein GUI mit einigen JTextFields geschrieben und das, was dort eingegeben wird, soll in eine .txt Datei gespeichert werden. Wie das grundsätzlich funktioniert, weiß ich, aber es funktioniert nicht so wirklich. Es wird zwar eine Datei angelegt, auch mit dem richtigen Namen, aber wenn man sie öffnet ist sie leer!
Entweder bin ich das ganze komplett falsch angegangen oder es liegt daran, dass das Speichern in einer anderen Methode ist, als das Eingeben... hier einfach mal einige Auszüge aus meinem Code, vielleicht fällt jemandem was auf. D:
Java:
if(event.getActionCommand()== "NeuesRezept") { //Event für den Klick auf den Button 'Weiter'
getContentPane().removeAll();
getContentPane().repaint();
getContentPane().setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //wen man auf X klickt wird das Programm beendet
contentPane = new JPanel(); //Hauptfenster als JPanel
contentPane.setBackground(new Color(130, 209, 255)); //Hintergrund des JPanels
setContentPane(contentPane);
contentPane.setLayout(new GridLayout(1, 2, 5, 0)); //Unterteilen des JPanels D:
JPanel linkeSeite = new JPanel(); //Erstellen eines JPanels für die linke Buchseite
linkeSeite.setBackground(new Color(169, 224, 255)); //Hintergrundfarbe der linken Seite
FlowLayout fl_linkeSeite = (FlowLayout) linkeSeite.getLayout(); //FlowLayout für die linke Seite erstellen
fl_linkeSeite.setAlignment(FlowLayout.LEFT); //FlowLayout für die linke Seite einstellen
contentPane.add(linkeSeite);
JLabel HeadingInputNewRecipe = new JLabel("Neues Rezept eingeben"); //Text auf der linken Seite
linkeSeite.add(HeadingInputNewRecipe); //Text der linken Seite an die linke Seite anfügen
linkeSeite.setLayout(null);
HeadingInputNewRecipe.setBounds(40, 40, 360,24);
HeadingInputNewRecipe.setFont(new Font("Verdana", Font.BOLD, 20)); //Einstellungen des JLabels
JLabel RecipeTitle = new JLabel( "Geben Sie den Titel des Rezepts ein: " ) ;
TextField RecipeTitleInText = new TextField( 15 );
RecipeTitle.setVisible(true);
RecipeTitleInText.setVisible(true);
linkeSeite.add(RecipeTitle);
RecipeTitle.setBounds(40, 79, 360,18);
linkeSeite.add(RecipeTitleInText);
RecipeTitleInText.setBounds(40, 100, 250,18); //.. hier folgen noch einige Komponenten..
und dann
Java:
if (event.getActionCommand()=="speichern") {
String SpeicherplatzEingabe = JOptionPane.showInputDialog(this, "Auf welcher Seite soll gespeichert werden (1-20)?", "Speichern",JOptionPane.PLAIN_MESSAGE);
JFrame Test= new JFrame();
JLabel TestText = new JLabel( SpeicherplatzEingabe );
Test.add(TestText);
TestText.setVisible(true);
Test.setVisible(true);
Test.setSize(300,150);
int Speicherplatz = Integer.parseInt(SpeicherplatzEingabe);
KochbuchSeite [] KochbuchSeiteInhalt = new KochbuchSeite [20];
for (int i = 0; i < 20; i++){
KochbuchSeiteInhalt[i] = new KochbuchSeite();
}
File datei = new File(Speicherplatz + ".txt");
try{
FileWriter FWriter = new FileWriter(datei, true);
BufferedReader FReader = new BufferedReader(new FileReader(Speicherplatz + ".txt"));
TextField RecipeTitleInText = new TextField( 15 );
KochbuchSeiteInhalt[Speicherplatz].RecipeTitleS = RecipeTitleInText.getText();
FWriter.append(KochbuchSeiteInhalt[Speicherplatz].RecipeTitleS + "\r\n");
}
catch(IOException ioexcept)
{
}
}
Beides befindet sich natürlich in sowas
Java:
public void actionPerformed(ActionEvent event)
{}
Wahrscheinlich liegt es daran, dass das Programm nicht wirklich auf die Eingabe zugreifen kann?? Ich hab keine Ahnung, was ich ändern muss, damit es funktioniert.
Wenn jemand eine Idee hat würde ich mich sehr freuen!
lg