Login und Register screen

programmierer12

Bekanntes Mitglied
Hallo zusammen ich wollte für ein Spiel einen Register und Loginscreen schreiben der dazu dienen soll dass der Spielstand eines Spielers geladen werden kann und kein anderer dessen Spielstand nimmt.
Also habe ich eine Gui gemacht mit zwei Buttons, einer zum registrieren und einer zum einloggen außerdem habe ich noch ein Textfeld und ein Passwortfeld. Ich wollte das so realisieren, dass der Inhalt des Ersten und der Inhalt des zweiten Feldes mit einem | getrennt in eine .txt datei geschrieben wird und dann ein Zeilenumbruch stattfindet. Anschließend wollte ich die Datei beim login wieder auslesen und den inhalt der Textfelder wieder mit | getrennt mit den einzelnen Zeilen vergleichen. Wenn also dieses zutrifft wird eine int-variable auf 1 gesetzt und im weiteren Verlauf überprüft ob diese variable 0 oder 1 ist, wenn sie 1 ist kommt man in das Spiel und der Spielstand wird geladen, und wenn die Variable 0 ist schlägt der Login fehl und das Programm gibt aus, dass dien Benutzername und-oder dein Passwort falsch sind. Mein Problem (an dem ich jetzt schon über 2 Wochen rumprobiere) ist aber, dass auch wenn ich genau das richtige eingebe die variable immer auf 0 gesetzt wird!!! ;(
Jetzt wollte ich mal nachfragen ob mir jemand helfen könnte mein Problem zu lösen, oder mir eine Idee verraten könnte die das gleiche Ergebniss liefert aber geschickter währe (mit Datenbanken kann ich das noch nicht weil ich noch Anfänger bin) !!!!!!!:bahnhof:

Schonmal im Vorraus vielen Dank 🙂
 
Ganz ohne Code wird es schwer für uns sein zu sagen was beim Login schief läuft und wieso du immer 0 erhältst. Zeige doch mal den Teil deines Logins (sprich die zwei Textfelder und das ein- und auslesen der txtDatei)
 
Hallo tut mir leid dass ich es jetzt erst gesehen habe aber trotzdem habe ich hier den Code, ich hoffe es hilft dir weiter!
Java:
		final JButton btnLogIn = new JButton("Log In ");
		btnLogIn.addActionListener(new ActionListener() {
			@SuppressWarnings("deprecation")
			public void actionPerformed(ActionEvent e) {
				
				  int login = 0;
				  String eingabe, benutzer, passwort;
				  benutzer=txtBenutzer.getText();
				  passwort= txtPasswort.getText();
				  eingabe = benutzer + "|" + passwort;
				  
				  try {
						BufferedReader in = new BufferedReader(new FileReader("Benutzer.dat"));
						String zeile = null;
						while ((zeile = in.readLine()) != null) {
							
							if(zeile == eingabe){
								
								login = 1;
								
							}
							
						}
					} catch (IOException e1) {
						e1.printStackTrace();
					}
				  
				  if(login == 1){
					  
					  JOptionPane.showMessageDialog(null, "Sie haben sich erfolgreich eingeloggr");
					  
				  }
				  
				  else{
					  
					  JOptionPane.showMessageDialog(null, "Der Benutzername oder das Passwort sind falsch");
					  
				  }
				  
				  txtBenutzer.setText("");
                  txtPasswort.setText("");
				  
			}
		});
		btnLogIn.setBounds(12, 97, 217, 25);
		contentPane.add(btnLogIn);
		
		JButton btnRegister = new JButton("Register");
		btnRegister.addActionListener(new ActionListener() {
			
			@SuppressWarnings("deprecation")
			public void actionPerformed(ActionEvent arg0) {

		          try {
		              
		        	  String schreiben, benutzer, passwort;
					  benutzer=txtBenutzer.getText();
					  passwort= txtPasswort.getText();
					  schreiben = benutzer + "|" + passwort;
		              
		              BufferedWriter out = new BufferedWriter(new FileWriter("Benutzer.dat", true));		              
		                   out.write(schreiben + "\r\n");
		                   out.close();
		                   txtBenutzer.setText("");
		                   txtPasswort.setText("");
		                   
		           }
		           catch (IOException e1){
		               
		               e1.printStackTrace();
		           }
		          
			}
		});
		
		btnRegister.setBounds(12, 147, 217, 25);
		contentPane.add(btnRegister);

Also es ist zwar nicht kommentiert aber ich denke so schwer zu verstehen ist es auch nicht.
Wenn ihr euch wundert, dass der ActionListener ein wenig komisch aussieht kommt das davon dass ich den login screen mit windowBuilder gemacht habe! 🙂
 
ich Habe jetzt das
Java:
if(zeile == eingabe){
login = 1;
}
durch
Java:
if(zeile.equals(eingabe){
login = 1;
}
ersetzt hat aber nicht das ergebnis gebracht dass ich mir gewünscht hätte das Problem ist nicht
anders die variable login wird immer auf 0 gesetzt!!
 
Ich hab den Fehler gefunden der writer hat aus irgendeinem grund auch immer vor die erste zeile noch eine Zeile gemacht und das mit dem equals ist mir auch erst grad wieder eingefallen!!!!
Danke und bis zum nächten mal!!! 🙂
 

Zurück
Oben