Hallo habe bereits den JButton Versionsinfo deaktiviert wenn das JFrame offen ist aber ich möchte nun wenn ich das JFrame schließe gerne den JButton wieder aktivieren.
Versionfenster v = new Versionfenster ();
v.setVisible(true);
butVersionsInfo.setEnabled(false);```
[QUOTE=Movementroboter]Hallo habe bereits den JButton Versionsinfo deaktiviert wenn das JFrame offen ist aber ich möchte nun wenn ich das JFrame schließe gerne den JButton wieder aktivieren.
Versionfenster v = new Versionfenster ();
v.setVisible(true);
butVersionsInfo.setEnabled(false);```[/QUOTE]
Ein bisschen mehr Infos (oder Code) wären nicht schlecht. Normalerweise hat man nur 1 JFrame für seine Anwendung und nimmt JDialog für weitere Fenster. Wo liegt denn nun dein Button genau?
versionsfenster klingt danach, dass du infos zur version anzeigst. Wenn der User das gesehen hat, klickt er auf schliessen, kehrt zu dem Hauptfenster zurueck und alles geht weiter.
Warum sollte das Fenster offen bleiben ? und warum musst du dich dann mit dem ganzen enablement rumschlagen?
und dein code da oben kann nicht funktionieren, du kannst nicht einfach eine booleasche variable (setVisible return) mit einer instanz vergleichen.
Hast du dir die tipps von oben angschaut ? die links ?
ja da hast du schon irgendwie recht bygones aber möchte halt trotzdem gerne wissen wie es funktioniert das ich den Button Deaktiviere und wieder Aktiviere wenn ich das Fenster schließe.
Dann mach das doch einfach mal mit einem modalen JDialog. Dem übergibst du als Referenz das aufrufende Objekt mit und beim Schliessen des Dialogs setzt du den Button eben wieder auf sichtbar, z.B. über eine Methode in dem aufrufenden Objekt (also da, wo dein Button ist).
Wenn ich die Lösung(en) auf Stackoverflow richtig verstanden habe, dann kannst du auf zwei Weisen herangehen:
[ol]
[li]Du überschreibst JFrame und implementierst die windowClosing() neu
[/li][li]Die registrierst einen Listener auf dein JFrame, der beim Schließen des JFrames reagiert
[/li][/ol]
Diese beiden Vorgehensweisen mach auf jeden Fall auch Sinn. Wobei ich persönlich eher davon abraten würde JFrame zu überschreiben (muss aber jeder selbst wissen), stattdessen würde ich den Listener-Ansatz verfolgen.
Und welcher ist DER GUI-Builder? WindowBuilder bei Eclipse? Swing GUI Builder in Netbeans?
Ich kann dir nicht genau sagen wie man mit sowas umgeht, wenn man einen GUI-Builder verwendet (hab ich nie gemacht), von daher müsste dir da jemand anderes helfen.
Ansonsten zu 1.: Eine Klasse erstellen die JFrame „extended“. Dort dann windowClosing() überschreiben.
Zu 2.: Irgendwo erzeugst du ein JFrame-Objekt. Lass es uns frame nennen. Dieses Objekt nimmst du und schreibst frame.addWindowListener(…) (siehe Link).
Habe in meinem Package Person dem JFrame ein Event hinzugefügt und möchte nun über WindowClosing mein Button gerne wieder aktiv setzen.Leider weiß ich nicht wirklich wie ich das machen soll da mein butPerson in einem anderen Package liegt und WindowClosing private ist.
Da nun die Lösung wohl schon gepostet wurde :(, ein kleine Hinweis
GuiBuilder sollte man vermeiden. Der erzeugt Code den später keiner mehr lesen kann (verbessert mich wenn es mittlerweile anders ist).
Fang besser Schritt für Schritt an. Baue den Code selbst zusammen. Und wenn du eine Frage hast, versuch alle nötigen Informationen zu liefern, sodass man dir nicht alles aus der Nase ziehen muss ^^
Eine Information wie „habe den link angeschaut, komme aber nicht weiter“ bringt nichts, da wir dann nicht wissen warum und wieso und dir somit nicht sagen können woran es liegt.
Habe in meinem Package Person dem JFrame ein Event hinzugefügt und möchte nun über WindowClosing mein Button gerne wieder aktiv setzen.Leider weiß ich nicht wirklich wie ich das machen soll da mein butPerson in einem anderen Package liegt und WindowClosing private ist.
Erstelle eine Methode die public ist und den Button aktiv setzt, mit dieser kannst du dann aus formWindowClosing() den Button aktiv setzten.