Swing Speichern nach Button-Klick

Diskutiere Speichern nach Button-Klick im Allgemeine Java-Themen Bereich.
S

seymenxkaya

Hallo, ich bin dabei ein Login System zu programmieren und mein Ziel ist es erstmal sich registrieren zu können. Dabei habe ich 3 Klassen. Main (Datenbank), Login und Register. Wenn man in der Klasse Register auf den Button buttonRegistrieren drückt soll folgendes passieren:
Java:
public void actionPerformed(ActionEvent e) {
                
                 textfeldVornameString = textfeldVorname.getText();
                 textfeldNachnameString = textfeldNachname.getText();
                 textfeldEmailString = textfeldEmail.getText();
                 textfeldEmail2String = textfeldEmail2.getText();
                 textfeldPasswortString = textfeldPasswort.getText();
                 textfeldPasswort2String = textfeldPasswort2.getText();
                
                JOptionPane.showMessageDialog(null,"Sie haben sich erfolgreich registriert!","Registrieren erfolgreich!",JOptionPane.PLAIN_MESSAGE);
                
                Login.main(null);
                frame.dispose();
                
            }
        });
Also sollen die Informationen von den textfields in Strings gespeichert werden, welche dann in die Main Klasse übergeben werden, wie folgt:
Java:
public static void speichern()
    {
        
        LoginRegister.textfeldVornameString =  textfeldVornameString;
        LoginRegister.textfeldNachnameString =  textfeldNachnameString;
        LoginRegister.textfeldEmailString =  textfeldEmailString;
        LoginRegister.textfeldEmail2String =  textfeldEmail2String;
        LoginRegister.textfeldPasswortString =  textfeldPasswortString;
        LoginRegister.textfeldPasswort2String =  textfeldPasswort2String;
        
        try
        {
            Connection con = getConnection();
            PreparedStatement posted = con.prepareStatement("INSERT INTO benutzer (Vorname, Nachname, Email, Email2, Passwort, Passwort2) VALUES ('"+textfeldVornameString+"' ,'"+textfeldNachnameString+"',"
                    + " '"+textfeldEmailString+"', '"+textfeldEmail2String+"', '"+textfeldPasswortString+"', '"+textfeldPasswort2String+"')");
            
            posted.executeUpdate();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
        finally
        {
            System.out.println("Insert Completed.");
        }
    }
Die Strings habe ich außerhalb der Klasse erstellt. Ich habe mal geguckt, ob der Inhalt der textfields wirklich gespeichert wird und dabei ist raus gekommen, dass dieser gespeichert wird. Also müsste der Fehler in der speichern Methode liegen. Bei 2 maligem probieren wurde immer null als Wert gespeichert. Ich hoffe ich konnte mein Problem klar und deutlich darlegen und würde mich über eure Hilfe freuen! Liebe Grüße
 

Anhänge

Wurstkopp

Wurstkopp

Warum wird in actionPerformed() kein Speichern aufgerufen? Hier fehlt vermutlich der entscheidende Code. Vielleicht einfach falsche Aufrufreihenfolge? Debuggen sollte in diesem Fall hilfreich sein.
 
S

seymenxkaya

Warum wird in actionPerformed() kein Speichern aufgerufen? Hier fehlt vermutlich der entscheidende Code. Vielleicht einfach falsche Aufrufreihenfolge? Debuggen sollte in diesem Fall hilfreich sein.
Ich hatte speichern bisher selber ausgeführt aber funktioniert auch nicht wenn ich speichern in actionPerformed() aufrufe.
 
mihe7

mihe7

Zunächst einmal ist das kein JavaFX sondern Swing. Dann ist die massenhafte Verwendung von static schon sehr verdächtig und die seltsame "Übergabe" von Werten zwischen Objekten erst recht. Man sieht auch die Zusammenhänge im gezeigten Code nicht...
 
J

JustNobody

Was mir an der Speichern Methode auffällt: die Zuweisungen sind entweder für den Aufruf nicht notwendig oder sie sind falsch herum.

Wenn die Werte in LoginRegister.xxx sind, dann ist die Zuweisung falsch herum. Wenn die Werte bereits in den Variablen sind, dann frage ich mich, was LoginRegister ist und warum da die Werte zusätzlich zugewiesen werden. Dann würde speichern mehr machen, als es nur in der Datenbank zu speichern....

Aber die Auszüge sind in meinen Augen viel zu klein gewählt. Mir fehlt der Überblick, wo der Code jeweils ist und wie die Variablen definiert wurden und so ....
 
S

seymenxkaya

Hab den Code der speichern Methode in Actionperformed eingefügt nun klappt es.
Java:
JButton buttonRegistrieren = new JButton("Registrieren");
        buttonRegistrieren.addActionListener(new ActionListener() {
            @SuppressWarnings("deprecation")
            public void actionPerformed(ActionEvent e) {
                
                 textfeldVornameString = textfeldVorname.getText();
                 textfeldNachnameString = textfeldNachname.getText();
                 textfeldEmailString = textfeldEmail.getText();
                 textfeldEmail2String = textfeldEmail2.getText();
                 textfeldPasswortString = textfeldPasswort.getText();
                 textfeldPasswort2String = textfeldPasswort2.getText();

                    try
                    {
                        Connection con = Main.getConnection();
                        PreparedStatement posted = con.prepareStatement("INSERT INTO benutzer (Vorname, Nachname, Email, Email2, Passwort, Passwort2) VALUES ('"+textfeldVornameString+"' ,'"+textfeldNachnameString+"',"
                                + " '"+textfeldEmailString+"', '"+textfeldEmail2String+"', '"+textfeldPasswortString+"', '"+textfeldPasswort2String+"')");
                        
                        posted.executeUpdate();
                    }
                    catch(Exception e1)
                    {
                        System.out.println(e);
                    }
                    finally
                    {
                        System.out.println("Insert Completed.");
                    }
                    
                JOptionPane.showMessageDialog(null,"Sie haben sich erfolgreich registriert!","Registrieren erfolgreich!",JOptionPane.PLAIN_MESSAGE);
                
                Login.main(null);
                frame.dispose();
                
            }
        });
 
Thema: 

Speichern nach Button-Klick

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben