Hallo,
Ich habe folgendes Projekt und ein damit verbundenes Problem:
Hier erstmal der Code:
(Sorry wenns ziemlich viel ist)
Wenn ich zuerst die Methode "Anfragen" aufrufe und dann auf Login/Erstellen oder erstellen klicke schließt sich das Anfragen-Frame nicht mehr.
Verstehe ich nicht ... Der Referenz zu dem Frame wird doch in der nächsten methode durch ein neues Frame objekt überschrieben ....
Danke
Ich habe folgendes Projekt und ein damit verbundenes Problem:
Hier erstmal der Code:
(Sorry wenns ziemlich viel ist)
Java:
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Spieler implements Serializable {
private String name;
private String passwort;
private String zustand;
private int zaehler;
JFrame mFrame;
JTextField nField;
JTextField pField;
JLabel aLabel;
public void passwortFragen () {
zustand = "login";
mFrame = new JFrame();
JLabel nLabel = new JLabel("Name:");
JLabel pLabel = new JLabel("Passwort:");
nField = new JTextField(40);
pField = new JTextField(40);
JPanel pPanel = new JPanel();
JButton lButton = new JButton("Login");
aLabel = new JLabel();
JButton zButton = new JButton("Zurück");
JPanel oPanel = new JPanel();
mFrame.setSize(300, 150);
mFrame.setVisible(true);
mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lButton.addActionListener(new LoginListener());
zButton.addActionListener(new zListener());
mFrame.getContentPane().add(BorderLayout.CENTER, pPanel);
mFrame.getContentPane().add(BorderLayout.SOUTH, oPanel);
pPanel.setLayout(new BoxLayout(pPanel, BoxLayout.Y_AXIS));
pPanel.add(nLabel);
pPanel.add(nField);
pPanel.add(pLabel);
pPanel.add(pField);
pPanel.add(aLabel);
oPanel.add(lButton);
oPanel.add(zButton);
}
public void passwortFestlegen () {
zustand = "erstellen";
mFrame = new JFrame();
JLabel fLabel = new JLabel("Geben Sie ihr Passwort ein:");
JLabel xLabel = new JLabel ("Geben Sie ihren Namen ein:");
pField = new JTextField(40);
nField = new JTextField(40);
JButton xButton = new JButton("Senden");
JPanel pPanel = new JPanel();
aLabel = new JLabel();
JPanel oPanel = new JPanel();
JButton zButton = new JButton("Zurück");
mFrame.setSize(300, 150);
mFrame.setVisible(true);
mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xButton.addActionListener(new SpeicherListener());
zButton.addActionListener(new zListener());
mFrame.getContentPane().add(BorderLayout.CENTER, pPanel);
mFrame.getContentPane().add(BorderLayout.SOUTH, oPanel);
pPanel.setLayout(new BoxLayout(pPanel, BoxLayout.Y_AXIS));
pPanel.add(xLabel);
pPanel.add(nField);
pPanel.add(fLabel);
pPanel.add(pField);
pPanel.add(aLabel);
oPanel.add(xButton);
oPanel.add(zButton);
}
public void anfragen() {
zustand = "anfragen";
zaehler = 0;
mFrame = new JFrame();
JButton abut = new JButton("Login");
JButton bbut = new JButton("Erstellen");
JLabel lg = new JLabel("Wenn sie noch keinen Account haben, klicken sie auf 'Erstellen'");
JPanel pPanel = new JPanel();
mFrame.setSize(400, 80);
mFrame.setVisible(true);
mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
abut.addActionListener(new aListener());
bbut.addActionListener(new bListener());
mFrame.getContentPane().add(BorderLayout.CENTER, pPanel);
pPanel.add(lg);
pPanel.add(abut);
pPanel.add(bbut);
}
class LoginListener implements ActionListener {
public void actionPerformed (ActionEvent ev) {
if (name.equals(nField.getText()) && passwort.equals(pField.getText())) {
aLabel.setText("Login erfolgreich");
}
else {
aLabel.setText("Falsche Daten, versuchen Sie es erneut");
}
}
}
class SpeicherListener implements ActionListener {
public void actionPerformed (ActionEvent ev) {
name = nField.getText();
passwort = pField.getText();
aLabel.setText("Daten gespeichert");
}
}
class aListener implements ActionListener {
public void actionPerformed (ActionEvent ec) {
passwortFragen();
}
}
class bListener implements ActionListener {
public void actionPerformed (ActionEvent ev) {
passwortFestlegen();
}
}
class zListener implements ActionListener {
public void actionPerformed (ActionEvent ev) {
if (zustand.equals("login")) {
anfragen();
}
else {
if (zustand.equals("erstellen")) {
anfragen();
}
}
}
}
}
Wenn ich zuerst die Methode "Anfragen" aufrufe und dann auf Login/Erstellen oder erstellen klicke schließt sich das Anfragen-Frame nicht mehr.
Verstehe ich nicht ... Der Referenz zu dem Frame wird doch in der nächsten methode durch ein neues Frame objekt überschrieben ....
Danke