Bei folgendem Login-Fenster muss ich 2X auf "Anmelden" gehen, bevor ich mich anmelden kann:
Woran kann das liegen?
Code:
//-------------------------------------------------------------------------------------
/** Die Login-Klasse ist dafür zuständig, den Anwender an der Datenbank anzumelden*/
//-------------------------------------------------------------------------------------
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import java.text.*;
/** Die Klasse Login stellt die Verbindung zur Datenbank her.*/
public class Login
{
/** Variablendeklaration für die gesamte Klasse**/
public static Connection connection;
public static JTextField txt_username;
public static JPasswordField txt_password;
public static String lese, lese_dokumentation, lese_icd1, lese_icd2, lese_icd3;
public static Statement stmt, stmt1, stmt2, stmt3, stmt4, stmt5;
public static ResultSet result, result_dokumentation, result_icd1, result_icd2, result_icd3, result_kh;
public static DatabaseMetaData dmd;
public static String[] ergebnis;
public static String angemeldeter_User;
private static String s_username = "sa";
private static String s_password = "";
/******************************************************************
Anmeldedialog mit Benutzernamen, Passort und DB-Namen
******************************************************************/
private static void init()
{
String[] s_options = {"Anmelden", "Abbrechen"};
JPanel pnl_main = new JPanel();
pnl_main.setLayout(new GridLayout(3,3,10,10));
JLabel lbl_username = new JLabel("Benutzername: ", JLabel.RIGHT);
txt_username = new JTextField();
JLabel lbl_password = new JLabel("Passwort: ", JLabel.RIGHT);
txt_password = new JPasswordField();
pnl_main.add(lbl_username, 0);
pnl_main.add(txt_username, 1);
pnl_main.add(lbl_password, 2);
pnl_main.add(txt_password, 3);
txt_username.requestFocusInWindow();
JOptionPane.showOptionDialog(null, (Object)pnl_main, "DB-Anmeldung", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, s_options,null);
if(JOptionPane.showOptionDialog(null, pnl_main,
"DB-Anmeldung",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null, s_options,
s_options[0]) != 0)
{
System.exit(0);
}
}
/** Werte aus der Konfigurations-Datei auslesen**/
public static void lesen()
{
try
{
ergebnis = new String[1];
BufferedReader reader = new BufferedReader(new FileReader("konfiguration.dat"));
String line = reader.readLine();
while((line != null))
{
ergebnis[0] = line;
line = reader.readLine();
}
}
catch(IOException io){}
}
/******************************************************************
main-Methode
******************************************************************/
public static void main(String[] args)
{
lesen();
init();
angemeldeter_User = txt_username.getText();
String pwd = new String(txt_password.getPassword());
try
{
Class.forName("org.h2.Driver");
String connection_string = "jdbc:h2:tcp:" + ergebnis[0] + "/test";
connection = DriverManager.getConnection(connection_string, angemeldeter_User, pwd);
boolean angemeldet = true;
Update.updateAnwender(angemeldet, angemeldeter_User);
DatenLaden();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Es ist folgender Fehler aufgetreten: " + e,
"DB-Meldung", JOptionPane.ERROR_MESSAGE);
}
StartFrame frm = new StartFrame("Startseite");
frm.setVisible(true);
KrankenhausLaden();
frm.setResizable(false); // verhindern, dass der Anwender die Größe des Fensters verändert
frm.setExtendedState(JFrame.MAXIMIZED_BOTH); // auf Vollbildschirm schalten
}
}
Woran kann das liegen?