Jak poprawnie porównać JPasswordField z metodą która zwraca Stringa?

0

Jak poprawnie porównać JPasswordField z metodą która zwraca Stringa. Wymyślam coś takiego ale niestety nie działa

 
if (passwordField.getPassword().equals(mainWindow.getUzytkownicyMapa().get(k).getHaslo()))
							{
							setVisible(false);
							mainWindow.getContentPane().remove(mainWindow.getPanelOtwarciaProgramu());
							mainWindow.getContentPane().add(mainWindow.getPanelPrzebieguCwiczen());
							mainWindow.validate();
							mainWindow.repaint();		
						         }
1

Widzę, że korzystasz z kodu, który Ci podałem w poprzednim wątku. Wypadałoby jakoś zareagować, zaakceptować odpowiedź, dać plusa, podziękować,...
Szybka rada, użyj debuggera by podejrzeć wartość zmiennych, ewentualnie dodaj do kodu

System.out.println(passwordField.getPassword());
System.out.println(mainWindow.getUzytkownicyMapa().get(k).getHaslo());
0

Tak dzieki juz dodałem umknęło mi. Kod sie bardzo przydał teraz bez problemu mogę odwoływać się do wszystkich komponentów JFrame przez metody get.

0

Tak pomyślałem o tym i dodałem wczesniej. Kod wyglada tak:

 
public void actionPerformed(ActionEvent arg0) 
				{
				
				//for (int i=0;i<mainWindow.getUzytkownicyMapa().size();i++)
				//{
						
				String k = textField.getText();	
				System.out.println(mainWindow.getUzytkownicyMapa().get(k).getHaslo());
				System.out.println(passwordField.getPassword());
				try {
					
					if (mainWindow.getUzytkownicyMapa().get(k).getLogin().length()>0)
					{
						if (passwordField.getPassword().equals(mainWindow.getUzytkownicyMapa().get(k).getHaslo()))
							{
							setVisible(false);
							mainWindow.getContentPane().remove(mainWindow.getPanelOtwarciaProgramu());
							mainWindow.getContentPane().add(mainWindow.getPanelPrzebieguCwiczen());
							mainWindow.validate();
							mainWindow.repaint();	
							
						}
						
					}
0

Kod wygląda bardzo ładnie, ale co się pojawia na konsoli?

0

Pojawiają sie te same ciągi znaków. Czyli wpisuje poprawne hasło dla uzytkownika ale If nie działa.

1

Może są spacje na końcu. Zamień

passwordField.getPassword()
//na
passwordField.getPassword().trim()

Analogicznie w drugim Stringu.

0

Ilosc znakow sie zgadza ale zastanawia mnie jedna rzecz czy moge porownywac char i String : getHaslo to String a getPassword to []char

gethaslo.jpg

getPassword.jpg

1

Nie możesz, zamień tablicę na Stringa lub odwrotnie

1 użytkowników online, w tym zalogowanych: 0, gości: 1