Hi. Ich habe mir mit Netbeans eine kleine GUI zusammen geklickt.
Und ein paar funktionen (Aktionlistener sind gemeint) hinzugefügt.
Funktionalität habe ich bereits mehrfach getest. Aber manchmal reagieren
die JBUttons überhaupt nicht auf einen Klick und manchmal sofort.
Ist mein Klassen design so schlecht das dass Programm zu langsamm wird?
Denn ich habe mehrere Packages. Für jedes Frame habe ich eine eigene
Klasse alle zusammen in einem GUI Package und dieses ist in einem
Weiteren Package.+ Ich habe eine Datenbank verbindung die Permanent
offen bleibt.
Meine IDE:
Der größte Teil des Quellcodes ist generiert
daher jetzt nur das Relevante für Vorgang -> Login Button wurde gedrückt:Von netbeans:
Von mir
Meine Main Klasse:
Die ControllLogin Klasse:
Meine Connect Klasse:
Bei bedarf kann ich auch gerne noch eine Jar von dem Prj hochladen bzw. weitere Quellcodes. Aber ich wollte es für den Anfang nicht überladen.
ALso nochmal meine Frage: Wieso reagiert der Login-Button (JButton) manchmal erst beim 2 oder 3 Klick und manchmal beim 1. ?
Und ein paar funktionen (Aktionlistener sind gemeint) hinzugefügt.
Funktionalität habe ich bereits mehrfach getest. Aber manchmal reagieren
die JBUttons überhaupt nicht auf einen Klick und manchmal sofort.
Ist mein Klassen design so schlecht das dass Programm zu langsamm wird?
Denn ich habe mehrere Packages. Für jedes Frame habe ich eine eigene
Klasse alle zusammen in einem GUI Package und dieses ist in einem
Weiteren Package.+ Ich habe eine Datenbank verbindung die Permanent
offen bleibt.
Meine IDE:

Der größte Teil des Quellcodes ist generiert
daher jetzt nur das Relevante für Vorgang -> Login Button wurde gedrückt:Von netbeans:
Java:
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});
Java:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
boolean boolLogin=false;
try {
boolLogin = ControllerLogin.checkLogin(jTextField1.getText(), jPasswordField1.getText());
} catch (SQLException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
MyError conLos=new MyError("Es gab einen Fehler bei der Verbindung:\n"+ex.getMessage());
conLos.setVisible(true);
}
if( boolLogin )
Main.showMF();
else
Main.showLogError(); // TODO add your handling code here:
}
Meine Main Klasse:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jtask;
import java.sql.SQLException;
import jtask.GUI.*;
import jtask.GUI.Dialoge.MyError;
/**
*
* @author bjoern
*/
public class Main {
static Login start;
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
Connect.makeConnection();
start=new Login();
}
public static void showLogError(){
MyError le=new MyError("Die von Ihnen eingegebenen Logindaten sind nicht Korrekt");
le.setVisible(true);
}
public static void showMF(){
Mainframe mf=new Mainframe();
mf.setVisible(true);
start.dispose();
}
}
Die ControllLogin Klasse:
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jtask;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author bjoern
*/
public class ControllerLogin {
public static boolean checkLogin(String user,String pw) throws SQLException{
boolean correct=false;
if( (!user.equals("")) && (!user.isEmpty()) && (!pw.equals("")) && (!pw.isEmpty()) )
{
String query="SELECT pw FROM user WHERE uname=\'"+user.trim()+"\' limit 1";
ResultSet rs=Connect.getConnect().createStatement().executeQuery(query);
if (rs.next()){
if(rs.getString(1).trim().equals(pw.trim()))
correct=true;
}
}
return correct;
}
}
Meine Connect Klasse:
Java:
package jtask;
import com.mysql.jdbc.Driver;
import java.sql.*;
/**
*
* @author Ferdiansyah Dolot
* Edited by:
* @author bjoern
*/
public class Connect {
private static Connection connect=null;
public static void makeConnection() throws SQLException {
if (connect == null) {
new Driver();
// buat koneksi
connect = DriverManager.getConnection(
"jdbc:mysql://localhost/jtask",
"root",
"");
}
}
public static void makeConnection(String host,String DB) throws SQLException {
if (connect == null) {
new Driver();
// buat koneksi
connect = DriverManager.getConnection(
"jdbc:mysql://"+host+"/"+DB,
"root",
"");
}
}
public static Connection getConnect(){
return connect;
}
}
Bei bedarf kann ich auch gerne noch eine Jar von dem Prj hochladen bzw. weitere Quellcodes. Aber ich wollte es für den Anfang nicht überladen.
ALso nochmal meine Frage: Wieso reagiert der Login-Button (JButton) manchmal erst beim 2 oder 3 Klick und manchmal beim 1. ?