Button mit Speicher-Funktion

Diskutiere Button mit Speicher-Funktion im AWT, Swing, JavaFX & SWT Bereich.
Bitte aktiviere JavaScript!
A

Arafan_2018

Hallo
bin neu im Bereich GUI Programmierung und möchte nun wissen wie man mit einem Button eine Speicher Funktion eingibt dass z.B. die Änderungen in einem JTextField gespeichert werden und man nicht bei jeder Öffnung des Programms den text neu eingeben muss. Habe windowBuilder benutzt
 
Zuletzt bearbeitet:
mihe7

mihe7

Naja, Du fügst dem Button halt einen ActionListener hinzu und dort machst Du, was Du lustig bist, also z. B. den Feldinhalt in eine Datei speichern.

Java:
import java.io.*;
import javax.swing.*;

public class Test {
    private String text;

    private JTextField textField;

    public void run() {
        loadFromDisk();
        textField = new JTextField(text);
        textField.setColumns(50);
        JButton button = new JButton("Speichern");
        button.addActionListener(e -> saveToDisk());

        JPanel content = new JPanel();
        content.add(textField);
        content.add(button);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(content);
        frame.pack();
        frame.setVisible(true);
    }

    private void saveToDisk() {
        text = textField.getText();

        try(PrintWriter writer = new PrintWriter(new FileWriter("daten.dat"))) {
            writer.println(text);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    private void loadFromDisk() {
        File file = new File("daten.dat");
        if (!file.exists()) { return; }

        try(BufferedReader reader = new BufferedReader(new FileReader("daten.dat"))) {
            this.text = reader.readLine();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 
A

Arafan_2018

OK wenn ich den Code einfüge kann ich aber nicht mehr auf Windowbuilder zugreifen
 
mihe7

mihe7

Du sollst den Code auch nicht bei Dir einfügen. Das ist als Beispiel gedacht, damit Du siehst, wie so etwas im Zusammenhang funktionieren kann. Sprich: schau ihn Dir an, wie es funktioniert und dann baust Du so etwas in Deinem Code nach.
 
mihe7

mihe7

und wenn ich den Code nicht verstehe?
Was verstehst Du denn nicht? Beim Start wird loadFromDisk() aufgerufen, das lädt den gespeicherten Text - sofern existent - aus einer Datei. Beim Klick auf den Button wird saveToDisk() aufgerufen, das holt sich den Text aus dem Textfeld und speichert diesen dann in die Datei. Mehr ist das nicht.
 
A

Arafan_2018

Ok wie geht dass dann wen man mit einem button alle Textfelder und Checkboxen speichert
 
Robat

Robat

Du holst dir die Werte aus den Textfelder und Checkboxen und speicherst diese. Das ganze geht analog zu dem Beispiel von @mihe7
Ehrlich.. Wenn du das nicht verstehst dann geh 2 Schritte zurück.. Gui scheint noch etwas zu hoch für dich zu sein. Lern erstmal die Grundlagen
 
Thema: 

Button mit Speicher-Funktion

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben