Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich bin gerade dabei mein erstes Programm zu schreiben und wollte mal fragen ob nicht die Möglichkeit besteht die Sichtbarkeit diverser JFrames über Boolean zu steuern.
Ich habe ein Haupt JFrame (codiert in der main-Methode) das zwei Buttons besitzt. Wenn ich darauf klicke öffnet sich ein neues JFrame. Ich möchte das erste nun aber gerne ausgeblendet haben. Leider kann ich der ActionPerformed Methode ja nicht sagen: „HauptJFrame.setVisible( false )“, weil hier gesagt wird, dass es das HauptJFrame nicht finden kann.
Hatte schon versucht eine public Variable zu erstellen unter deren Kontrolle die Sichtbarkeit des HauptJFrames steht. Leider hängt sich da allerdings mein Programm auf…
Das sich das Programm aufhängt ist klar, da du eine Endlosschleife im GUI Thread gemacht hast.
Du machst eine Klasse, die alle JFrames kennt und eine Methode setVisible(int, boolean) bereitstellt. Die Klasse speichert die JFrames in einer List oder in einem Array. Der int Wert ist der Index oder der Index + 1. Der boolean ist die Visibility.
Dein aller erstes Programm oder dein 1.Programm mit GUI? Wenn es das aller erste ist solltest du dich vielleicht noch auf Konsolenprogramme beschränken
Ich habe ein Haupt JFrame (codiert in der main-Methode) das zwei Buttons besitzt. Wenn ich darauf klicke öffnet sich ein neues JFrame. Ich möchte das erste nun aber gerne ausgeblendet haben. Leider kann ich der ActionPerformed Methode ja nicht sagen: „HauptJFrame.setVisible( false )“, weil hier gesagt wird, dass es das HauptJFrame nicht finden kann.
Hatte schon versucht eine public Variable zu erstellen unter deren Kontrolle die Sichtbarkeit des HauptJFrames steht. Leider hängt sich da allerdings mein Programm auf…
Das Problem warum dein Programm einfriert liegt daran das die while-Schleife auf dem GUI Thread ausgeführt und somit deine GUI blockiert. Theoretisch müsstest du diese Schleife in einen eigenen Thread auslagern. Aber generell macht diese Schleife keinen Sinn, da es nichts bringt "endlos"
Code:
setVisible(false)
aufzurufen => 1x reicht vollkommen.
Im ActionListener vom Button solltest du das Hauptfenster auf unsichtbar setzen und das neue Fenster auf sichtbar. Sobald das neue geschlossen wird solltest du dieses Fenster schließen und das Hauptfenster wieder auf sichtbar, dazu brauchst du eine Referenz auf dieses Hauptfenster.