Hallo Zusammen,
ich übe gerade ein wenig die Java-Programmierung. Ich schreibe dazu gerade ein kleines Testprogramm. Das soll so ablaufen, dass man sich erst einloggen muss.
Dazu habe ich ein kleines Abfrageprogramm geschrieben:
Ich habe also einen Action-Listener auf dem Button, der dann bei korrekter Eingabe die entsprechende Veränderung am boolean "ok" vornimmt. Diese Variable wird dann als "true" zurückgegeben an mein "Startprogramm", dieses startet dann das eigentliche Hauptmenü.
Als test lasse ich in die Konsole den Inhalt von "ok" vor und nach dem ändern schreiben. Das funktioniert auch. Aber müsste dann in diesem Moment nicht die leere "Do-While" schleife enden und sich das Fenster schließen?
Ich vermute ich mache einfach einen logischen Fehler im Ablauf oder mir fehlt noch ein wenig Verständnis.
Kann mir jemand helfen?
Viele Grüße,
Sebix
ich übe gerade ein wenig die Java-Programmierung. Ich schreibe dazu gerade ein kleines Testprogramm. Das soll so ablaufen, dass man sich erst einloggen muss.
Dazu habe ich ein kleines Abfrageprogramm geschrieben:
Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class pwcheck implements ActionListener {
JLabel Passwort = new JLabel("Passwort");
JLabel Username = new JLabel("Benutzername");
JTextField userfeld = new JTextField(10);
JPasswordField pwfeld = new JPasswordField(10);
JButton btnok = new JButton("Einloggen");
boolean ok;
public boolean pwcheckwindow() {
JFrame passwortabfrage = new JFrame();
JPanel abfragepanel = new JPanel();
abfragepanel.setLayout(new GridLayout(4,2,2,2));
btnok.addActionListener(this);
abfragepanel.add(new JLabel("Bitte benutzernamen eingeben:"));
abfragepanel.add(new JLabel(" "));
abfragepanel.add(Username);
abfragepanel.add(userfeld);
abfragepanel.add(Passwort);
abfragepanel.add(pwfeld);
abfragepanel.add(btnok);
abfragepanel.setBackground(Color.WHITE);
passwortabfrage.setSize(100, 50);
passwortabfrage.add(abfragepanel);
passwortabfrage.pack();
passwortabfrage.setLocationRelativeTo(null);
passwortabfrage.setVisible(true);
do {
}
while (ok = false);
return ok;
}
@Override
public void actionPerformed(ActionEvent e) {
if (userfeld.getText().equals(new String("opa"))) {
if (new String(pwfeld.getPassword()).equals(new String("test"))) {
System.out.println(ok);
ok = true;
System.out.println(ok);
}
}
}
}
Ich habe also einen Action-Listener auf dem Button, der dann bei korrekter Eingabe die entsprechende Veränderung am boolean "ok" vornimmt. Diese Variable wird dann als "true" zurückgegeben an mein "Startprogramm", dieses startet dann das eigentliche Hauptmenü.
Als test lasse ich in die Konsole den Inhalt von "ok" vor und nach dem ändern schreiben. Das funktioniert auch. Aber müsste dann in diesem Moment nicht die leere "Do-While" schleife enden und sich das Fenster schließen?
Ich vermute ich mache einfach einen logischen Fehler im Ablauf oder mir fehlt noch ein wenig Verständnis.
Kann mir jemand helfen?
Viele Grüße,
Sebix
Zuletzt bearbeitet: