Lautsprecher
Erfahrenes Mitglied
Hallo ich habe eine Klasse Info erstellt die mir eine JFrame mit einigen Buttons, TextAreas etc. erstellt. Wenn ein Benutzer auf den Button "Anmelden" klickt, soll ein JDialog-Fenster (Klasse: Passwortabfrage) auf gehen, damit er seinen Namen und sein Passwort eintragen kann. Wenn er anschließend "OK" drückt soll das JDialog-Fenster wieder geschlossen werden und der Benutzer mit dem Hauptprogramm weiter arbeiten.
Mein Problem ist, dass ich beim Aufruf des JDialogs immer eine Neue Instanz der Klasse Info erzeuge. Wenn ich den Dialog schliesse, bleibt die Instanz erhalten, so dass ich plötzlich in der Windows-Taskleiste 2 JFrames des Hauptprogramms habe.
Leider bin ich in Vererbung und der Verwendung mehrerer Klasse nicht so fit.........
Klasse Passwortabfrage
Die Hauptklasse: Info wird folgendermaßen aufgerufen: (habe dort nichts verändert)
Mein Problem ist, dass ich beim Aufruf des JDialogs immer eine Neue Instanz der Klasse Info erzeuge. Wenn ich den Dialog schliesse, bleibt die Instanz erhalten, so dass ich plötzlich in der Windows-Taskleiste 2 JFrames des Hauptprogramms habe.
Leider bin ich in Vererbung und der Verwendung mehrerer Klasse nicht so fit.........
Code:
Button "Anmelden" in der Klasse: Info
action performed...
{
Passwortabfrage padialog = new Passwortabfrage(hauptpgm)
;}
Klasse Passwortabfrage
Code:
public class Passwortabfrage {
public Info hauptfenster;
public Passwortabfrage(JFrame frame)
{
hauptfenster = (Info)frame;
initialize();
}
public void initialize()
{
getJDialog(); //hier baue ich mein JDialog zusammen
jDialog.setEnabled(true);
jDialog.setVisible(true);
jDialog.show()
//Variablen und Methoden aus der Klasse Info:
//ab hier bekomme ich eine Nullpointer Exception
hauptfenster.hauptschalterfarbe1 = false;
hauptfenster.hauptpgm_sperren();
etc.
}
beim Button "OK": actionPerformed
{
jDialog.setVisible(false);
jDialog.setEnabled(false);
jDialog.hide();
etc.
}
}
Die Hauptklasse: Info wird folgendermaßen aufgerufen: (habe dort nichts verändert)
Code:
public class Info extends JFrame implements ActionListener
{
public JFrame hauptpgm = null;
public Passwortabfrage padialog;
public static void main(String[] args)
{
Info application = new Info();
}
public Info()
{
hauptpgm = new JFrame();
//super();
initialize(); //hier wird das JFrame dann aufgebaut
}
}
Zuletzt bearbeitet: