Noch mals Probleme mit Login

Status
Nicht offen für weitere Antworten.

Alex_winf01

Top Contributor
Bei folgendem Login-Fenster muss ich 2X auf "Anmelden" gehen, bevor ich mich anmelden kann:

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?
 

Oli

Top Contributor
Hi,

Code:
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); 
            }

Du rufst ja die JOptionaen auch 2 mal auf. Die Zeile über der if-Abfrage kannst du löschen !

Grüße Oli
 

Alex_winf01

Top Contributor
@ Oli

vielen Dank für Deine Antwort. Nun habe ich folgendes Problem:

Anwender gibt Benutzernamen und dann ein falsches Passwort ein. Der Anmelde-Dialog wird wieder eingeblendet. Nun gibt der Anwender den Benutzernamen und ein korrektes Passwort ein. Das Programm wird beendet.

Hier mein Code:

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);
      
		s_username = new String (txt_username.getText().trim());
		s_password = new String (txt_password.getPassword());
   }
	
	/** Werte aus der Konfigurations-Datei auslesen**/
	public static void lesen()
	{
		try
		{
			ergebnis = new String[1];
			BufferedReader reader = new BufferedReader(new FileReader("konfiguration_kjp.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);	
    		
	    	StartFrame frm = new StartFrame("BKG_BADO_KJPa");
		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
	}
	catch(Exception e)
		{
		   JOptionPane.showMessageDialog(null, "Sie haben ein falsches Passwort eingegeben",
			"DB-Meldung", JOptionPane.ERROR_MESSAGE);
			init();
			try
			{
				connection.close();
			}
			catch(Exception z)
			{
				JOptionPane.showMessageDialog(null, "Fehler",
			"DB-Meldung", JOptionPane.ERROR_MESSAGE);
			}
		}
   }
}

Ich möchte einfach nur, dass der Anmeldedialog eingeblendet wird und der Anwender sich wieder normal anmeldet.
 

Ariol

Top Contributor
Code:
public static void main(String[] args)
{
        lesen();
        init();
        
        boolean loginOK = false;

        angemeldeter_User = txt_username.getText(); //wieso doppelt? siehe init()
        String pwd = new String(txt_password.getPassword()); //wieso doppelt? siehe init()

        while(!loginOK)
        {
                try
                {
                        Class.forName("org.h2.Driver");
                        String connection_string = "jdbc:h2:tcp:" + ergebnis[0] + "/test";
                        connection = DriverManager.getConnection(connection_string, angemeldeter_User, pwd);   
          
                        StartFrame frm = new StartFrame("BKG_BADO_KJPa");
                        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
                  }
                  catch(Exception e)
                  {
                        JOptionPane.showMessageDialog(null, "Sie haben ein falsches Passwort eingegeben",
                                                                                "DB-Meldung", JOptionPane.ERROR_MESSAGE);
                        try
                        {
                                connection.close();
                        }
                         catch(Exception z)
                        {
                                JOptionPane.showMessageDialog(null, "Fehler",
                                                                                        "DB-Meldung", JOptionPane.ERROR_MESSAGE);
                        }
                        loginOK = false;
                  }
        } 
}

Evtl. so?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
M JavaFX kann man da noch was am code vereinfachen design technisch sieht nicht richtig aus... AWT, Swing, JavaFX & SWT 15
K Wie kann ich noch den scale bekommen, außer mit getScaleX oder getScaleY? AWT, Swing, JavaFX & SWT 1
P Swing GUI noch nicht gezeichnet - Logik läuft - blockiert AWT, Swing, JavaFX & SWT 3
P Swing Nach removeAll() noch 1 Element vorhanden AWT, Swing, JavaFX & SWT 0
G noch eine Frage zum EventDispachThread AWT, Swing, JavaFX & SWT 4
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
B Swing Noch ein Zeichenprogramm... AWT, Swing, JavaFX & SWT 19
R Noch einmal x^2 bzw. parabel AWT, Swing, JavaFX & SWT 2
V Swing Neue Größe bei ComponentListener noch nicht verfügbar? AWT, Swing, JavaFX & SWT 3
S 3D-Grafik Java3D und was noch? AWT, Swing, JavaFX & SWT 3
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
Nicer LookAndFeel Suche noch LaFs AWT, Swing, JavaFX & SWT 7
2 Werde Java GUIs immer noch mit dem in die Jahre gekommen Swing gemacht? AWT, Swing, JavaFX & SWT 12
M SWT Mutter-Shell blocken während Tochter-Shell noch offen ist AWT, Swing, JavaFX & SWT 6
R noch ein DoubleBuffering Noob AWT, Swing, JavaFX & SWT 10
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S Swing Fenster schliessen, javaw noch im Speicher AWT, Swing, JavaFX & SWT 5
U JList mit Hintergrundbild hinterlegen und noch ne Frage AWT, Swing, JavaFX & SWT 4
S Weder ActionListener noch Graphics wollen so recht AWT, Swing, JavaFX & SWT 3
G JTree mouseClicked -> kontrolle ob noch ein unterknoten e AWT, Swing, JavaFX & SWT 2
A Noch mal Zusammenarbeit Java und HTML AWT, Swing, JavaFX & SWT 4
G Text eines noch aktiv editierten Textfeldes lesen AWT, Swing, JavaFX & SWT 2
H Noch einmal JList (nichts auswählen) AWT, Swing, JavaFX & SWT 2
C AWT, Swing & was sonst noch. AWT, Swing, JavaFX & SWT 11
E Toturial weg! Hat noch wer ne Kopie! AWT, Swing, JavaFX & SWT 3
U sporadisches Deadlock und noch ein Schmankerl ;) AWT, Swing, JavaFX & SWT 9
M Es bleibt immer noch eine Javaw instanz zurück AWT, Swing, JavaFX & SWT 3
H Swing nach schließen noch sichtbar AWT, Swing, JavaFX & SWT 4
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen

Neue Themen


Oben