Knopfdruck neues Fenster öffnen

Elethier100

Mitglied
Guten Abend,

vor einigen Tagen wurde mir schon einmal so schön geholfen und bin leider noch einmal auf eure Hilfe angewiesen. Bin gerade dabei für ein Programm den Login zu programmieren und beim drücken auf den Einloggen Button kommt immer eine NE: Weiß jemand, wo da der Fehler liegt?

// Datenbankcode ist irgendwie hier im Forum mit in den GUI Code gerutscht und geht nicht mehr rückggängig. Sorry :/

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at login.database_connection.einloggen(database_connection.java:51)
    at login.login_view.actionPerformed(login_view.java:194)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Programmcode GUI:
Java:
package login;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import urlaubsantrag.urlaubsantrag_view;
import util.GuiFormatter;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.JPasswordField;
import javax.swing.ImageIcon;
import javax.swing.JButton;


import java.sql.*;


public class login_view extends JFrame implements ActionListener {

    private JPanel contentPane;
    private JTextField txt_Benutzername;
    private JPasswordField pw_Passwort;
    private JLabel lblBenutzername;
    private JLabel lblPasswort;
    private JButton btnEinloggen;
    private JLabel lblOben;
    private JLabel lblBild;
    private JButton btnHilfe;
    private JButton btnAbbrechen;
    Connection con = null;

 
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    // damit die View Systemunabhöngig ist.
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try{
                    new login_view();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public login_view() {
        starten();
        class Fenster extends WindowAdapter {
            public void windowClosing(WindowEvent e) {
            schliessen();
            }
            }
        addWindowListener(new Fenster());
    }
 
    private void starten() {
    
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setBounds(100, 100, 554, 366);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        Color c1 = new Color(229,249,248);
        contentPane.setBackground(c1);
        setTitle("Login");
        setVisible(true);
        setContentPane(contentPane);
        contentPane.setLayout(null);
        // View startet in der Mitte des Bildschirms.
        setLocationRelativeTo(null);
        setResizable(false);
    
        lblBenutzername = new JLabel("Benutzername:");
        lblBenutzername.setFont(new Font ("Tahoma", Font.PLAIN, 13));
        lblBenutzername.setBounds(42, 138, 103, 14);
        getContentPane().add(lblBenutzername);
    
        lblPasswort = new JLabel("Passwort:");
        lblPasswort.setFont(new Font ("Tahoma", Font.PLAIN, 13));
        lblPasswort.setBounds(42, 181, 79, 14);
        getContentPane().add(lblPasswort);
    
        txt_Benutzername = new JTextField();
        txt_Benutzername.setBounds(145, 138, 86, 20);
        txt_Benutzername.setColumns(10);
        txt_Benutzername.setDocument(new SetMaText(9));
        txt_Benutzername.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();
                if(!((Character.isDigit(c) ||
                        (c == KeyEvent.VK_BACK_SPACE) ||
                        (c == KeyEvent.VK_DELETE)))) {
                        e.consume();        
            }
            }
        });
    
        this.getContentPane().add(txt_Benutzername);
    
        pw_Passwort = new JPasswordField();
        pw_Passwort.setBounds(145, 181, 86, 20);
        this.getContentPane().add(pw_Passwort);
    
        btnEinloggen = new JButton("Einloggen");
        btnEinloggen.setBounds(42, 238, 86, 23);
        btnEinloggen.addActionListener(this);
        this.getContentPane().add(btnEinloggen);
    
        btnAbbrechen = new JButton("Abbrechen");
        btnAbbrechen.setBounds(145, 238, 98, 23);
        btnAbbrechen.addActionListener(this);
        this.getContentPane().add(btnAbbrechen);
    
        lblOben = new JLabel("");
        lblOben.setBounds(0, 0, 548, 89);
        // durchsichtig setzen, für die Hintergrundfarbe.
        lblOben.setOpaque(true);
        lblOben.setIcon(new ImageIcon(login_view.class.getResource("/logo.png")));
        Color c2 = new Color(0,155,187);
        lblOben.setBackground(c2);
        getContentPane().add(lblOben);
    
        lblBild = new JLabel("");
        lblBild.setBounds(305, 110, 147, 182);
        lblBild.setIcon(new ImageIcon(login_view.class.getResource("/login.png")));
        getContentPane().add(lblBild);
    
        btnHilfe = new JButton("");
        btnHilfe.setBounds(515, 11, 23, 23);
        btnHilfe.setIcon(new ImageIcon(login_view.class.getResource("/Hilfe_1.png")));
        btnHilfe.setOpaque(true);
        btnHilfe.addActionListener(this);
        contentPane.add(btnHilfe);

    }
    // Beim schließen des Programmes prüfen, ob man es wirklich beenden möchte.
    public void schliessen(){
        if(JOptionPane.showOptionDialog(null, "Willst du wirklich das Programm beenden?","Beenden",
        JOptionPane.YES_NO_OPTION,
        JOptionPane.QUESTION_MESSAGE, null,
        new String[]{"Ja", "Nein"}, "Nein") == JOptionPane.YES_OPTION){
          System.exit(0);
        }
    
      }
 
    public void resetView(){
        this.txt_Benutzername.setText("");
        this.pw_Passwort.setText("");
    }
 
    public void beenden(){
        dispose();

    }
 
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()== btnAbbrechen) {
            dispose();
            System.exit(0);
        }
    
        if(e.getSource() == btnHilfe) {
            JOptionPane.showMessageDialog(null, "Bitte geben Sie ihre Mitarbeiter ID und ihr Passwort ein!", "Login", JOptionPane.INFORMATION_MESSAGE);
        }
    
        if(e.getSource() == btnEinloggen) {
            database_connection.getDBCon();
            Mitarbeiter ma = null;
            if(txt_Benutzername.getText().equals(""))
                JOptionPane.showMessageDialog(null, "Bitte geben sie eine Benutzerkennung ein", "Login", JOptionPane.ERROR_MESSAGE);
            else if(pw_Passwort.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Bitte geben sie ihr Passwort ein", "Login", JOptionPane.ERROR_MESSAGE);
            }else{
                ma = database_connection.einloggen(Integer.parseInt(txt_Benutzername.getText()), pw_Passwort.getText());
            }
        
        
            if(ma != null){
                dispose();
                new urlaubsantrag_view();
        }else{
                database_connection.closeDBCon();
            }
    }
        }

 Datenbank:
[code=Java]package login;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.*;
import javax.swing.*;
import javax.swing.JOptionPane;
import login.Mitarbeiter;

// DB Connection erstellen
public class database_connection {
    static String Username = "xxx";
    static String Password = "xxx";
    static String URL = "jdbc:oracle:thin:@<>";
    static Connection con = null;
 
// Nutzer mit User/Passwort anmelden
 

public static Connection getDBCon(){
 
    try{
        Connection con = DriverManager.getConnection(URL, Username, Password);
        con.setAutoCommit(false);
        return con;
  } catch (SQLException e) {
      System.err.println("Fehler bei der Verbindung aufgetreten" + e.getMessage());
      e.printStackTrace();
      System.exit(0);
    }

    return null;
}
//Datenbankverbindung schließen
public static void closeDBCon(){
    try{
        if(con != null)
            con.close();
    }catch(SQLException sql){
        JOptionPane.showMessageDialog(null, "Verbindung konnte nicht hergestellt werden","Fehlermeldung", JOptionPane.ERROR_MESSAGE);
        System.exit(0);
    }
}

public static Mitarbeiter einloggen(int txt_Benutzername, String pw_Password) {
    Mitarbeiter ma = new Mitarbeiter(txt_Benutzername, txt_Benutzername, pw_Password, pw_Password, txt_Benutzername, txt_Benutzername, txt_Benutzername, txt_Benutzername, pw_Password, txt_Benutzername, pw_Password, txt_Benutzername, txt_Benutzername, pw_Password, pw_Password);
    Statement stmt = null;
    ResultSet rs = null;
    try {
        stmt = con.createStatement();
        rs = stmt.executeQuery("SELECT MANR, PASSWORT FROM MITARBEITER WHERE MANR = " + txt_Benutzername);
        if(rs.next()) {
            if(txt_Benutzername == rs.getInt("MANR") && pw_Password.equals(rs.getString("PASSWORT"))) {
                ma.setManr(rs.getInt("MANR"));
                ma.setPasswort(rs.getString("PASSWORT"));
                String vorgnr = rs.getString("VORGNR");
                if(vorgnr == null) {
                    ma.setVorgnr(0);
                } else {
                    ma.setVorgnr(new Integer(vorgnr));
                }
                return ma;
            } else {
                return ma = null;
            }
        } else {
            JOptionPane.showMessageDialog(null, "Falscher Benutzername oder Passwort", "Login", JOptionPane.ERROR_MESSAGE);
        }
        stmt.close();
        rs.close();
   
    }catch(SQLException e){
        System.err.println("Fehler login ueberpruefung: "+e.getMessage());
    }finally{
        try{
            if(stmt != null)
                stmt.close();
            if(rs != null)
                rs.close();
        }catch(SQLException e){
            System.err.println("Fehler finally login ueberpruefung: "+e.getMessage());
        }
    }
    return ma = null;
}

 
 
} 

 
}
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
Moin,
(a) Du bekommst eine NPE ... und zwar genau hier:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at login.database_connection.einloggen(database_connection.java:51)
Und welche Zeile ist das genau ?? :rolleyes:

(b) Bist Du dir ganz sicher, dass Du dies hier posten darfst/solltest ??? :eek:
static String Username = "dvi...";
static String Password = "fh...";
static String URL = "jdbc: Oracle:thin: @...";

VG Klaus
 

Elethier100

Mitglied
Moin,
(a) Du bekommst eine NPE ... und zwar genau hier:

Und welche Zeile ist das genau ?? :rolleyes:

(b) Bist Du dir ganz sicher, dass Du dies hier posten darfst/solltest ??? :eek:


VG Klaus

Ein Moderator war so nett und hat die Daten entfernt. Ich kann meinen Beitrag irgendwie nicht bearbeiten. Dachte hätte ich entfernt :/ Dankeschön!

Die NE kommt genau bei dieser Zeile

Code:
        stmt = con.createStatement();
 

VfL_Freak

Top Contributor
Moin,
Ich kann meinen Beitrag irgendwie nicht bearbeiten
Das geht nur eine gewisse Zeitlang ... ;)

Die NE kommt genau bei dieser Zeile
Code:
stmt = con.createStatement();
Nun ja, con ist halt null, so wie Du es initialisiert hast :rolleyes:

Du legst hier eine NEUE Connection an:
Java:
public static Connection getDBCon()
{
    try
    {
        Connection con = DriverManager.getConnection(URL, Username, Password);
// ...
    }
weist aber die Rückgabe im actionPerformed nicht Deiner Instanzvariable zu !!
Java:
database_connection.getDBCon();

VG Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2
M BufferedReader neue Zeile nach Knopfdruck Java Basics - Anfänger-Themen 9
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
Dechasa Per Knopfdruck Objekte erstellen Java Basics - Anfänger-Themen 4
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
L Methode per Knopfdruck beenden Java Basics - Anfänger-Themen 3
S Simulation auf Knopfdruck Java Basics - Anfänger-Themen 29
R Icon auf JLabel nach Knopfdruck ändern Java Basics - Anfänger-Themen 20
D Objekte auf Knopfdruck in Arraylist erzeugen Java Basics - Anfänger-Themen 2
J Auf Knopfdruck Java Basics - Anfänger-Themen 9
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
B Button Text auf Knopfdruck verändern Java Basics - Anfänger-Themen 3
F Applet: mehrere Listenelemente nach Knopfdruck ausgeben Java Basics - Anfänger-Themen 2
S Linie ausgeben, die sich auf Knopfdruck verlängert Java Basics - Anfänger-Themen 2
C zweites Panel auf Knopfdruck anzeigen Java Basics - Anfänger-Themen 2
A Linie zeichnen per Knopfdruck --> Fehler Java Basics - Anfänger-Themen 7
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
W Neues Lern-Projekt gesucht Java Basics - Anfänger-Themen 8
B Erste Schritte nio oder io für neues Projekt Java Basics - Anfänger-Themen 1
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4
T Erste Schritte Totaler Noob in Java will was neues lernen Java Basics - Anfänger-Themen 22
F Verweis oder neues Objekt? Java Basics - Anfänger-Themen 8
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
F Neues Objekt oder nur ein Verweis? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
P Array reversed in ein neues Array Java Basics - Anfänger-Themen 5
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
I Neues Klassenobjekt nicht "ansprechbar" Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
M Neues Objekt? Java Basics - Anfänger-Themen 6
K Neues Bild bei eingabe bestätigung erscheinen Java Basics - Anfänger-Themen 21
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
M Neues Fenster Java Basics - Anfänger-Themen 2
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
M Neues Objekt erstellen Java Basics - Anfänger-Themen 3
P neues Objekt Java Basics - Anfänger-Themen 4
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
D Neues Objekt in Methode erstellen möglich? Java Basics - Anfänger-Themen 5
M Neues Fenster öffnen altes schützen Java Basics - Anfänger-Themen 10
S mit clickevent neues formular öffnen Java Basics - Anfänger-Themen 2
K Neues Fenster Öffnen? Java Basics - Anfänger-Themen 18
F jTable - neues Element vorher auf existenz Prüfen Java Basics - Anfänger-Themen 7
B neues Objekt erzeugen Java Basics - Anfänger-Themen 7
E Neues Java Fenster öffnen Java Basics - Anfänger-Themen 4
D Neues ContentPane öffnen Java Basics - Anfänger-Themen 3
B neues Problem! Java Basics - Anfänger-Themen 14
G JSP ohne neues Fenster aufrufen. Java Basics - Anfänger-Themen 8
S neues Objekt benennen Java Basics - Anfänger-Themen 3
I Probleme bei "Neues Spiel" Java Basics - Anfänger-Themen 3
P Neues Fenster ueber Hauptfenster Java Basics - Anfänger-Themen 4
T Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt Java Basics - Anfänger-Themen 9
L Wie kann ich auch in einem ActionListener ein neues java Pro Java Basics - Anfänger-Themen 8
gurgi mit button neues Frame öffnen Java Basics - Anfänger-Themen 7
G Neues File mit vorgegebenen Einstellungen erstellen? Java Basics - Anfänger-Themen 7
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
D neues Fenster in GUI Java Basics - Anfänger-Themen 2
S Methode soll ein neues Objekt vom Typ Class XYZ Java Basics - Anfänger-Themen 7
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
S vom button ein neues fenster öffnen Java Basics - Anfänger-Themen 1
L neues Fenster und Hauptfenster sperren Java Basics - Anfänger-Themen 11
N Open Source für Anfänger, neues Projekt-> Interesse? Java Basics - Anfänger-Themen 36
I Neues Spiel starten Java Basics - Anfänger-Themen 9
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
S Problem neues Objekt erzeugen Java Basics - Anfänger-Themen 4
M removeAll() und neues Hinzufügen Java Basics - Anfänger-Themen 2
A neues Objekt in main methode erstellen Java Basics - Anfänger-Themen 2
N Wie öffne ich ein neues Applet? Java Basics - Anfänger-Themen 4
G neues Paket importieren Java Basics - Anfänger-Themen 2
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
R Spieleprogrammierung Menüeintrag "Neues Spiel" Java Basics - Anfänger-Themen 2
G Neues Bild bei MouseOver Java Basics - Anfänger-Themen 2
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
R Gui + neues Fenster Java Basics - Anfänger-Themen 8
bernd Neues JFrame erzeugen? Java Basics - Anfänger-Themen 8
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
S in einem PopUp ein neues Popup erzeugen? Java Basics - Anfänger-Themen 5
J neues gui hinzugefügt .... jetzt gehts nicht mehr Java Basics - Anfänger-Themen 10
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben