Java Programm reagiert nicht

S

Sasku

Gast
Hey Leute,

ich möchte mich mal an einem kleinen Programm mit einem Log In Fenster probieren. Jetzt ist das Problem, dass wenn ich den "Log In"-Button klicke das Programm einfach nichts macht.

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;


public class LogListener implements ActionListener {

	
	static JFrame jf;
	
	@Override
	public void actionPerformed(ActionEvent arg0) {

		String[] userN_test = {"Bastian", "Valentin", "Daniel", "Maxi"};			// Test-usernames
		
		String[] passW_test = {"Dennstedt", "Weis", "Samborski", "Hauer" };			// Test-passwörter
		
		String userNein = login.userN.getText();
		
		String passWein = String.valueOf(login.passW.getPassword());
				
		int index =0;																// zum durchgehen der schleife 
		
		while ( index < userN_test.length ) {
			
			if ( userN_test[index].equals(userNein) && passWein.equals(passW_test)) {								// Usernames und Passwörter werden überprüft

												
						System.out.println("Log In Erfolgreich!");
						
						jf = new Frameos();
						
						mainos.log.setVisible(false);

				
			} else {
				index++;
				if ( index > userN_test.length ) {
					JOptionPane.showMessageDialog(null, "Passwort oder Username sind Fehlerhaft.", "FEHLER", JOptionPane.WARNING_MESSAGE);
				}
			}
		}
		
		
		
	}

}]

Eigentlich sollte es ( nach meinem Verständnis .. kann auch sein dass es falsch ist .. bin noch recht n Anfänger ) doch wenn Usernames und Passwörter übereinstimmen ( also eines ) dann "Log in Erfolgreich" ausgeben und das neue Frame aus der Klasse Frameos aufrufen, oder?

PS.: Ich mache die Usernames und die Passwörter hier noch in ein String Array, weil ich noch keine Erfahrungen mit Einbindungen von Datenbanken habe, kommt aber noch wenn ich das Programm erweitere und ich mich eingelesen habe in das ganze.
 
passWein.equals(passW_test) sollte doch sicher passWein.equals(passW_test[index]) sein, oder? Es wäre dort auch konsequenter die Form passW_test[index].equals( passWein ) beizubehalten, wie du es für den Usernamen ja auch tust.

Davon abgesehen, wenn dein Programm nicht reagiert und du eine While Schleife verwendest, ist das der erste Anlaufpunkt, die terminiert dann nämlich nicht und läuft immer und immer wieder durch.
Bau dir Ausgaben ein mit System.out.println und überprüfe, ob dein Programm auch das durchführt was es soll.
 
In Zukunft schau dir bei solchen Sachen einfach mal dein Programm im Debugger an. Dann wäre dir gleich auffallen das er nie eine korrekte Validierung für deine IF-Bedinung durchführt. Desweiteren wirst du auch nie deine Meldung "Passwort oder Username sind Fehlerhaft." sehen, da auch diese Bedingung nie zutreffen kann.
 
Zuletzt bearbeitet:
Zurück
Oben