# String-Wert aus Textfeld auslesen



## GeroJavaNeuling (8. Jun 2012)

Mein Problem besteht darin, dass ich im Textfeld jTF_Passwort zwar abc eingebe, ich aber trozdem die Rüchmeldung bekomme, dass es das falsche Passwort sei.

Bestimmt ist es ein ganz einfacher Logikfehler wäre nett wenn mir jemand helfen könnte.

Hier mein Code:

```
public void jB_Login_ActionPerformed(ActionEvent evt)
  {
    String passwort = "abc";
    String eingegebenesPasswort = jTF_Passwort.getText();

    if (eingegebenesPasswort == passwort)
    {
      jTA_Display.setText("Willkommen Admin");
    }
    else
    {
      jTA_Display.setText("Falsches Passwort.");
    }
  }
```

Vielen Dank schonmal

PS: Bitte versucht eure Antwort einfach zu halten und gut zu erklären, da ich als Java Neuling wirklich Schwierigkeiten hab, all das was für euch so selbstverständlich klingt, zu verstehen. Danke


----------



## XHelp (8. Jun 2012)

> Bitte versucht eure Antwort einfach zu halten und gut zu erklären, da ich als Java Neuling wirklich Schwierigkeiten hab, all das was für euch so selbstverständlich klingt, zu verstehen



Egal mit welcher Literatur du angefangen hast Java zu lernen: irgendwo am Anfang müsste stehen, dass String nicht mit 
	
	
	
	





```
a==b
```
 verglichen werden, sondern mit 
	
	
	
	





```
a.equals(b)
```
.


----------



## xehpuk (8. Jun 2012)

Da ich hier nun schon so fleißig getippt habe, gebe ich dazu noch einen kleinen theoretischen Hintergrund.

Der 
	
	
	
	





```
==
```
-Operator prüft bei primitiven Datentypen (
	
	
	
	





```
byte
```
, 
	
	
	
	





```
short
```
, 
	
	
	
	





```
int
```
, 
	
	
	
	





```
long
```
, 
	
	
	
	





```
float
```
, 
	
	
	
	





```
double
```
, 
	
	
	
	





```
boolean
```
, 
	
	
	
	





```
char
```
) auf Gleichheit, bei Objekten hingegen auf die Identität.
Objekt-Gleichheit überprüft man mit der Methode [JAPI]Object#equals(java.lang.Object)[/JAPI]. Zwei identische Objekte sind gleich. Zwei gleiche Objekte sind aber nicht zwangsweise identisch. Jeder String ist ein Objekt.


----------



## GeroJavaNeuling (8. Jun 2012)

Vielen Dank für die schnelle Hilfe 
Problem behoben...


Da fällt mir noch eine weiteres Problem ein, bei dem du mir vielleicht helfen könntest:

Ich hätte gerne oben links in meinem Programm (Eine Art Ticketautomat) ein Label im dem Datum und Uhrzeit stehen. Dieses Label soll natürlich jede Sekunde geupdated werden.

Mir ist es bisher möglich das Label beim Programm Start richtig anzuzeigen

```
Date zeitstempel = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
String jetzt = simpleDateFormat.format(zeitstempel).toString();
jL_Zeit.setText(jetzt);
```

Jetzt würde ich gerne das dieses live gehalten wird.

Ich habe natürlich schon gegooglet aber wurde von Post über eigenen Thread, Multithreading und anderem Zeug immer nur wieder verwirrt.

Falls auch noch meine Main gebraucht wird:

```
public static void main(String[] args)
  {
    new GUI_Ticketautomat("GUI_Ticketautomat");
  }
```

Hoffe auf eine weitere schnelle gute Antwort.

Danke


----------



## XHelp (8. Jun 2012)

Welche Antwort erwartest du nun? Wenn das Thema dich verwirrt, dann nimm dir ruhig Zeit um die Grundlagen zu lernen und dich mit dem Thema intensiv auseinanderzusetzen = selber viel lesen und selber ausprobieren.


----------



## GeroJavaNeuling (8. Jun 2012)

Könntest du mir denn Denkanreize geben, wie ich das Label jL_Uhr dazu bringen sich jede Sekunde selbst zu erneuern. Die sollte unabhängig vom Rest des Programmes geschehen.

Danke


----------



## Network (8. Jun 2012)

Denkanstoß:
- Schau dir Multithreading an -> Eine Methode als neuen Thread starten.
- While-Schleifen
- Einen Thread für eine bestimmte Zeit pausieren

Mit anderen Worten: Wenn du weisst wie man eine Methode schreibt, wie man eine while-schleife schreibt, wie man diese Methode als neuen Thread startet und wie man einen Thread pausiert dann weisst du was du machen musst


----------



## raGe666 (8. Jun 2012)

zu deinem ersten geposteten Quellcode, ich würde den String password 
	
	
	
	





```
final
```
 machen, da der eh nicht mehr geändert werden soll oder?


----------



## nrg (8. Jun 2012)

Nimm einfach Timer (Java Platform SE 6)


----------



## jgh (8. Jun 2012)

hier mal ein kleines Bsp dafür, kopiert von coderanch und ein wenig abgeändert...


```
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class XY extends JFrame {
	public XY() {
		final JLabel timeLabel = new JLabel();
		JPanel p = new JPanel(new BorderLayout());
		p.add(timeLabel, BorderLayout.WEST);
		add(p, BorderLayout.NORTH);
		setSize(500, 500);
		setLocationRelativeTo(null);

		final DateFormat timeFormat = new SimpleDateFormat(
				"dd.MM.yyyy HH:mm:ss");
		ActionListener timerListener = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Date date = new Date();
				String time = timeFormat.format(date);
				timeLabel.setText(time);
			}
		};
		Timer timer = new Timer(1000, timerListener);
		// to make sure it doesn't wait one second at the start
		timer.setInitialDelay(0);
		timer.start();
	}

	public static void main(String[] args) throws Exception {
		JFrame frame = new XY();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
```


----------

