Buttons zeigen keine Reaktion

Hornhauer100

Mitglied
Hallo,

ich bin gerade dabei für ein Projekt einen Login zu erstellen, aber irgendwie haut das nicht so 100%ig hin. Als ich alles in eine Klasse gematscht habe, klappte es noch. Jetzt musste das aber alles aufgeteilt werden (GUI, Controller, SQL etc....) und nun zeigen meine Buttons keine Reaktion mehr, wenn ich sie drücke.

Beim drücken auf Abbrechen, sollte das Fenster eigentlich geschlossen werden und beim drücken auf Einloggen, soll sich später das Hauptfenster öffnen (oder wie momentan zu Testzwecken einfach eine Meldung ausgegeben werden in einem Fenster, dass das einloggen geklappt hat. Aber das drücken der Buttons zeigt keine Reaktion. Eventuell habe ich Fehler im Code, oder übersehe einfach etwas.......
Datenbankverbindung an sich klappt soweit Problemlos mit anderen Packages / Klassen

Eventuell sehen eure Augen ja etwas und könnten mir helfen :D

Code:

VIEW:
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.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;

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

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;

public class login_view extends JFrame {

    private JPanel contentPane;
    private JTextField txt_Benutzername;
    private JPasswordField pw_Passwort;
    private JLabel lblBenutzername;
    private JLabel lblPasswort;
    private JButton btnEinloggen;
    private JButton btnAbbrechen;
    private JLabel lblOben;
    private JLabel lblBild;
    private JButton btnHilfe;
    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);
        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 String gettxt_Benutzername() {
        return txt_Benutzername.getText();
    }
  
    public String getpw_Passwort() {
        return pw_Passwort.getText();
    }
  
    public JButton btnEinloggen() {
        return btnEinloggen;
    }
  
    public void setEinloggen(JButton btnEinloggen){
        this.btnEinloggen = btnEinloggen;
    }
  
    public JButton btnAbbrechen() {
        return btnAbbrechen;
    }
  
    public void setAbbrechen(JButton btnAbbrechen){
        this.btnAbbrechen = btnAbbrechen;
    }
  
    public void setbtnEinloggenListener(ActionListener e){
        this.btnEinloggen.addActionListener(e);
    }
  
    public void setbtnAbbrechenListener(ActionListener e){
        this.btnAbbrechen.addActionListener(e);
    }
  
    public void resetView(){
        this.txt_Benutzername.setText("");
        this.pw_Passwort.setText("");
    }




  
  
}

CONTROLLER
Java:
package login;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import login.login_view;

public class login_controller {
    private login_view view = new login_view();
  
    public login_controller(){
        this.view = new login_view();
        addListener();
    }
  
    public void showView(){
        this.view.setVisible(true);
    }
  
    private void addListener(){
        this.view.setbtnEinloggenListener(new btnEinloggenListener());
        this.view.setbtnAbbrechenListener(new btnAbbrechenListener());
    }
  
    class btnEinloggenListener implements ActionListener {
        public void actionPerformed(ActionEvent e){
            if(login.login_sql.checkBenutzerID(view.gettxt_Benutzername(), view.getpw_Passwort()) == true) {
                view.resetView();
            } else {
                login_sql.checkPasswort(view.gettxt_Benutzername(), view.getpw_Passwort());
            }
              
        }  
  
    }
    class btnAbbrechenListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            view.resetView();
            view.dispose();
        }
    }
  


}

SQL
Java:
package login;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;
import javax.swing.*;
import javax.swing.JOptionPane;

import login.database_connection;

public class login_sql {
  
    // Checken, ob der Benutzername vorhanden ist
    public static boolean checkBenutzerID(String txt_Benutzername, String pw_Passwort) {
        Statement stmt = null;
        ResultSet rs = null;
        String sql = "SELECT MANR FROM MITARBEITER WHERE MANR='" + txt_Benutzername + "'";
        Connection con = database_connection.getDBCon();
        try{
            stmt = con.createStatement();
            rs = stmt.executeQuery(sql);
          
            while(rs.next()){
                if(rs.getString(1).equalsIgnoreCase(txt_Benutzername)) {
                    return checkPasswort(txt_Benutzername, pw_Passwort);
                }
                JOptionPane.showMessageDialog(null, "Login Fehlerhaft", "fehler", JOptionPane.INFORMATION_MESSAGE);
            }
            rs.close();
            stmt.close();
          
        } catch (SQLException sqlerr) {
            System.err.println("Fehler beim Einloggen " + sqlerr.getMessage());
        }
        JOptionPane.showMessageDialog(null, "Dieser Account ist nicht vorhanden", "Infor", JOptionPane.WARNING_MESSAGE);
        return false;
      
    }
    // Checken, ob Passwort korrekt ist
    public static boolean checkPasswort(String txt_Benutzername, String pw_Passwort) {
        Statement stmt = null;
        ResultSet rs = null;
        String sql = "SELECT MANR, PASSWORT FROM MITARBEITER WHERE MANR='"
                + txt_Benutzername + "' and PASSWORT='" + pw_Passwort + "'";
        Connection con = database_connection.getDBCon();
        try {
            stmt = con.createStatement();
            rs = stmt.executeQuery(sql);

            while (rs.next()) {
                if (rs.getString(1).equalsIgnoreCase(txt_Benutzername)
                        || rs.getString(5).equalsIgnoreCase(pw_Passwort)) {
                    return true;
                }
            }
            rs.close();
            stmt.close();

        } catch (SQLException sqlerr) {
            System.err.println("Fehler bei CheckPasswort " + sqlerr.getMessage());
        }
        JOptionPane.showMessageDialog(null, "Der Login ist fehlgeschlagen",
                "Fehler", JOptionPane.INFORMATION_MESSAGE);

        return false;

    }

    }
 

Robat

Top Contributor
Du hast die Zeile wo du den Actionlistener setzt auskommentiert :) bzw hast du gar keinen Actionslistener definiert.
 

Hornhauer100

Mitglied
Die ActionListener in der View habe ich vorläufig auskommentiert gehabt, weil ich das ja über den Controller laufen lassen wollte.

Im Controller habe ich doch die Buttons mit ActionListenern belegt?
 

Robat

Top Contributor
Sorry mein Fehler ;)

Wo genau arbeitest du denn mit dem login_controller?
Ich seh keine Stelle wo du bspw. eine Instanz dieses Controllers erstellst.

PS: Mal davon abgesehen dass so bei deinem Code, so wie er jetzt ist, zu einer Endlosschleife kommen wird. (sobald du eine Instanz von deinem Controller anlegst). Hast du dir das Konstrukt selber überlegt oder irgendwo gesehen? Ist nämlich recht konfus.
 

Hornhauer100

Mitglied
Eigentlich nutze ich den Controller nur in der Klasse selbst, bzw. der soll ja alles aus der View steuern etc.

Teils, teils. Habe vieles davon selbst gemacht und ein paar andere Sachen wo anders gesehen und dann versucht auf meinen Code anzupassen. Bin eine absolute Niete in Java und habe jetzt etliche Tage / Wochen verbraucht, um überhaupt soweit zu kommen D:
 

Robat

Top Contributor
Eigentlich nutze ich den Controller nur in der Klasse selbst, bzw. der soll ja alles aus der View steuern etc.
Naja dass du ihn nirgends aufrufst bringt dir recht wenig weil ja dann auch der Code nicht abgearbeitet wird.

Schau bspw. hier. Dort wird anhand eines MouseListeners/MouseAdapters gezeigt wie man sowas auslagert. Das solltest du dann recht einfach auf dein ActionListener übertragen können :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
A Aktualisierung eines Buttons Java Basics - Anfänger-Themen 18
S Runde Buttons erstellen Java Basics - Anfänger-Themen 10
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
T Buttons... Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
L Buttons außerhalb der sichtbaren Activity Java Basics - Anfänger-Themen 8
E Hilfe bei Buttons (GUI) Java Basics - Anfänger-Themen 3
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
L Buttons ansprechen Java Basics - Anfänger-Themen 1
F Mehrfaches Clicken eines Buttons Java Basics - Anfänger-Themen 1
E Wenn i (for-Loop) bestimmter Wert, dann neue Zeile eines Buttons Java Basics - Anfänger-Themen 7
H Java Buttons ausblenden bei inaktivität Java Basics - Anfänger-Themen 1
A Nach Druck eines Buttons reagieren andere Button nicht Java Basics - Anfänger-Themen 3
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
TheSorm Anzeige fehler eines Buttons Java Basics - Anfänger-Themen 3
M Icons auf Buttons Java Basics - Anfänger-Themen 9
S Variablen Variable bei drücken eines Buttons ändern Java Basics - Anfänger-Themen 1
M Buttons funktionieren nicht Java Basics - Anfänger-Themen 4
lord239123 Buttons werden nicht angezeigt Java Basics - Anfänger-Themen 3
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
M Größe eines Buttons festlegen Java Basics - Anfänger-Themen 4
W Buttons sollen bei Mausklick einen String schreiben Java Basics - Anfänger-Themen 11
J Aktivierung eines Buttons nach Eingabe in Textfeldern (DocumentListener) Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
K Erste Schritte GUI - Hintergrundbild und darauf Buttons Java Basics - Anfänger-Themen 2
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
U Methoden Methode zur Erstellung von Buttons Java Basics - Anfänger-Themen 11
H Icons in Buttons resizable? Java Basics - Anfänger-Themen 3
C Buttons über Textfeld beschriften Java Basics - Anfänger-Themen 10
L OOP Buttons mit Pfeilen miteinander verbinden Java Basics - Anfänger-Themen 5
A Dropdown Liste - mit je zwei Verlinkungen und zwei ausführende Buttons Java Basics - Anfänger-Themen 3
I Dynamisch erzeugten Buttons Methoden zuweisen Java Basics - Anfänger-Themen 6
P Listener für mehrere Buttons Java Basics - Anfänger-Themen 3
S Hilfe bei Buttons Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
B Die Hintergrundfarbe eines deaktivierten buttons ändern? Java Basics - Anfänger-Themen 4
SheldoN Töne abspielen auf verschiedenen Buttons Java Basics - Anfänger-Themen 17
J durch drücken eines buttons text in einer textdatei speichern Java Basics - Anfänger-Themen 2
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
Fab1 Buttons auf ein Hintergrundbild(JFrame) setzen Java Basics - Anfänger-Themen 24
H Methode aufrufen beim Drücken eines Buttons im Boxlayout Java Basics - Anfänger-Themen 6
M Tabelle mit Buttons Java Basics - Anfänger-Themen 24
M Variablen via actionPerformed mit Buttons ändern Java Basics - Anfänger-Themen 7
K Durch ändern eines Buttons String füllen Java Basics - Anfänger-Themen 14
J Buttons Java Basics - Anfänger-Themen 19
G Buttons in ein Array umformen Java Basics - Anfänger-Themen 11
S Buttons übereinander legen - Reihenfolge Java Basics - Anfänger-Themen 2
M Buttons erscheinen erst bei Mouse-Over Java Basics - Anfänger-Themen 8
B Buttons Java Basics - Anfänger-Themen 9
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
1 Menü mit Buttons erstellen Java Basics - Anfänger-Themen 10
M Durchsichtige Buttons Java Basics - Anfänger-Themen 12
P OnClickListener für mehrere Buttons Java Basics - Anfänger-Themen 5
U Buttons einfügen (Leiste verschwunden!?) Java Basics - Anfänger-Themen 2
M Gui - Probleme mit Buttons Java Basics - Anfänger-Themen 4
C Swing, Buttons Wert zuweisen Java Basics - Anfänger-Themen 3
E Android: OnClickListener erkennt Buttons nicht Java Basics - Anfänger-Themen 7
E Buttons in Android generieren? Java Basics - Anfänger-Themen 4
D Link over Buttons Java Basics - Anfänger-Themen 4
B Identifikation eines einzelnen Buttons aus mehreren Buttons per Schleife erzeugten Java Basics - Anfänger-Themen 4
Nicer Radio Buttons Gruppe Java Basics - Anfänger-Themen 2
G getControlPanelComponent JMF Buttons verstecken? Java Basics - Anfänger-Themen 7
K Buttons Funktionieren Nicht!!! Java Basics - Anfänger-Themen 8
manunana89 2 ActionListener auf 2 Buttons??? Java Basics - Anfänger-Themen 6
Mike90 verschieben von Buttons, ... Java Basics - Anfänger-Themen 18
F Buttons und Aktionen Java Basics - Anfänger-Themen 20
M dynamisches Clipboard mit Buttons Java Basics - Anfänger-Themen 5
H Buttons um sprache zu ändern. Java Basics - Anfänger-Themen 6
B Calculator - Buttons zusammenfassen Java Basics - Anfänger-Themen 8
0 Buttons mit Absatz Java Basics - Anfänger-Themen 6
B Buttons erstellen! Wie? Java Basics - Anfänger-Themen 2
D Buttons-die Wahrheit über sie Java Basics - Anfänger-Themen 11
G Buttons mit MouseOver Java Basics - Anfänger-Themen 5
M "Selbst erstellte" Buttons nicht sichtbar. Java Basics - Anfänger-Themen 20
Mörmel Variable Anzahl von Buttons erzeugen Java Basics - Anfänger-Themen 6
K Fenster mit Buttons hin und her schieben ? Java Basics - Anfänger-Themen 23
A in jTextField mit Hilfe von Buttons schreiben Java Basics - Anfänger-Themen 2
J Buttons Java Basics - Anfänger-Themen 3
M Buttons auf allen Masken Java Basics - Anfänger-Themen 4
G Alle Buttons in einer For Schleife ändern Java Basics - Anfänger-Themen 5
G Nicht benannte Buttons - Wenn gedrückt > Action Java Basics - Anfänger-Themen 24
T Buttons Resetten Java Basics - Anfänger-Themen 2
G Grafische Oberfläche mit Buttons und Actionlistener? Java Basics - Anfänger-Themen 27
D Buttons gehen trotz enebled(false) Java Basics - Anfänger-Themen 8
P Buttons Java Basics - Anfänger-Themen 6
G Panels und Buttons Java Basics - Anfänger-Themen 5
P Eigenschaften eines Buttons ändern Java Basics - Anfänger-Themen 6
M Buttons Java Basics - Anfänger-Themen 7
N Größe von Buttons Java Basics - Anfänger-Themen 3
D MouseLister und Identifikation des Event - Buttons Java Basics - Anfänger-Themen 4
T ActionListener zu Buttons dynamisch zuordnen Java Basics - Anfänger-Themen 10
F 2 Buttons Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben