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
Code:
VIEW:
CONTROLLER
SQL
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
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;
}
}