Default-WindowListener JFrame entfernen (Stichwort: iconified)

Monsees

Mitglied
Moin moin!

Ich habe ein paar Threads zum Thema "wie verhindere ich das iconifizieren eines JFrame" gelesen und mir ein paar Gedanken dazu gemacht, die Fragen aufgeworfen haben.

1. Ein default JFrame-Objekt reagiert auch ohne Zutun (Hinzufügen eines Listeners) auf Events innerhalb seiner "MenuBar". Allerdings liefert getWindowStateListeners() "0" zurück, warum?
Existiert ein Default Listener an den man nicht rankommt?

2. Statt einen eigenen Listener zu implementieren, der keine Reaktion auf ein Event vom Typ "iconified" zeigt, könnte man doch auch die Methoden des JFrames überschreiben, welche ein Event vom Typ "iconified" abfeuern/dispatchen. Oder wird das (z.B. durch Modifizierer) verhindert? Ich habe dazu im Quelltext von JFrame, Frame und Window bisher nix gefunden :(

Wäre euch für ein paar Statements sehr dankbar ;)
 

Flown

Administrator
Mitarbeiter
1. Ein default JFrame-Objekt reagiert auch ohne Zutun (Hinzufügen eines Listeners) auf Events innerhalb seiner "MenuBar". Allerdings liefert getWindowStateListeners() "0" zurück, warum?
Existiert ein Default Listener an den man nicht rankommt?
Du sprichst hier von den Standard Window-Icons: minimize, maximize, close. Diese sind Systemabhängig und sind nicht Teil von Java. Es wurden Hooks in den nativen controls eingebaut, damit man auf diese reagieren kann. Also kann man sagen, dass es einen Standardlistener des Systems gibt - und ja man kommt an den nicht ran.
2. Statt einen eigenen Listener zu implementieren, der keine Reaktion auf ein Event vom Typ "iconified" zeigt, könnte man doch auch die Methoden des JFrames überschreiben, welche ein Event vom Typ "iconified" abfeuern/dispatchen. Oder wird das (z.B. durch Modifizierer) verhindert? Ich habe dazu im Quelltext von JFrame, Frame und Window bisher nix gefunden :(
Einen eigenen Listener schreiben, der mir dieses Event "iconified" abfängt und frame.setExtendedState(JFrame.NORMAL) aufruft. Da hast du dann die Funktionalität, aber du siehst wie es kleiner und wieder größer gemacht wird.
Am besten ist du wirfst die Dekoration des OS weg (frame.setUndecorated(true);) und baust dir am oberen Ende deine eingenen Controls - dabei verlierst du das OS L&F aber ist die saubere Lösung.
 

Monsees

Mitglied
Vielen Dank für die schnelle Rückmeldung!

Du sprichst hier von den Standard Window-Icons: minimize, maximize, close. Diese sind Systemabhängig und sind nicht Teil von Java. Es wurden Hooks in den nativen controls eingebaut, damit man auf diese reagieren kann. Also kann man sagen, dass es einen Standardlistener des Systems gibt - und ja man kommt an den nicht ran.

Check, das wollte ich hören.:)

Einen eigenen Listener schreiben, der mir dieses Event "iconified" abfängt und frame.setExtendedState(JFrame.NORMAL) aufruft. Da hast du dann die Funktionalität, aber du siehst wie es kleiner und wieder größer gemacht wird.
Am besten ist du wirfst die Dekoration des OS weg (frame.setUndecorated(true);) und baust dir am oberen Ende deine eingenen Controls - dabei verlierst du das OS L&F aber ist die saubere Lösung.

Jep, diese beiden Möglichkeiten sind mir bekannt. Ist denn die von mir beschriebene (d.h. die dispatch-Methoden der Eventquelle (JFrame) so überschreiben, dass sie im Falle eines "iconified" einfach keine Listener-Methode aufruft) Variante, nicht möglich oder schlicht zu kompliziert?
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Jep, diese beiden Möglichkeiten sind mir bekannt. Ist denn die von mir beschriebene (d.h. die dispatch-Methoden der Eventquelle (JFrame) so überschreiben, dass sie im Falle eines "iconified" einfach keine Listener-Methode aufruft) Variante, nicht möglich oder schlicht zu kompliziert?
Wie schon oben beschrieben sind die Controls Systemabhängig und werden auch so ausgeführt. Das heißt Ein Event passiert durch klicken auf "Minimieren" -> das Fenster wird minimiert -> Java erhält das Event. Es wird nur eine Notification durch das Event erzeugt, aber man kann das Event nicht verhindern, außer natürlich man schreibt sich die Controls selbst (was auch - wie in meinem letzten Post beschrieben - die saubere Lösung ist).
 

Monsees

Mitglied
Ich habe gedanklich nicht sauber zwischen JFrame und den Controls getrennt. Was nützt das Überschreiben irgendwelcher Dispatch-Methoden des JFrames, wenn die Events von den Controls gefeuert werden, an die man nicht rankommt.

Damit ist der Groschen offiziell gefallen, danke!!! ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
T Default Table wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
M JavaFX Scrollpane: Style von Contentpanel default AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
B Swing JTextPane - Einfärbungen auf "default" AWT, Swing, JavaFX & SWT 2
H default cell renderer AWT, Swing, JavaFX & SWT 3
J Swing Default-Eigenschaft bei JButton AWT, Swing, JavaFX & SWT 22
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
S JTextField Default Text AWT, Swing, JavaFX & SWT 5
K Swing Wie ändere ich die default action für Drag&Drop AWT, Swing, JavaFX & SWT 6
G Wie komm ich z.B. an das Default WarningMessageIcon ran? AWT, Swing, JavaFX & SWT 2
R TreeViewer in SWT: Default Selection eines Items AWT, Swing, JavaFX & SWT 3
hdi non-default close operation bei JDialog AWT, Swing, JavaFX & SWT 2
I Default Button AWT, Swing, JavaFX & SWT 5
G setLookAndFeel to default LookAndFeel? AWT, Swing, JavaFX & SWT 4
I "default"-Style im DefaultStyledDocument AWT, Swing, JavaFX & SWT 2
G default Layout für JPanel AWT, Swing, JavaFX & SWT 2
T Ändern des Default-Aussehens einer JComboBox AWT, Swing, JavaFX & SWT 3
D FileFilter Default Eintrag AWT, Swing, JavaFX & SWT 4
S Default Button in Dialogs(Ok und Cancel) AWT, Swing, JavaFX & SWT 4
H default format settings AWT, Swing, JavaFX & SWT 11
A (Default)TreeModel und wie die Daten hinein bekommen AWT, Swing, JavaFX & SWT 5
P Default Link in Swing, --> öffne Browser -> Browse URL AWT, Swing, JavaFX & SWT 8
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
M WindowListener AWT, Swing, JavaFX & SWT 3
C WindowListener Frame AWT, Swing, JavaFX & SWT 8
B Bedeutung der Methoden von Klasse WindowListener AWT, Swing, JavaFX & SWT 4
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
DStrohma JFrame mit WindowListener schließen AWT, Swing, JavaFX & SWT 12
J Swing Eine(und zwar ein und die selbe) WindowListener Instanz für alle JFrames AWT, Swing, JavaFX & SWT 8
G JDialog und WindowListener AWT, Swing, JavaFX & SWT 2
G WindowListener für alle Fenster AWT, Swing, JavaFX & SWT 4
T Problem mit WindowListener AWT, Swing, JavaFX & SWT 13
A WindowListener für JFrame AWT, Swing, JavaFX & SWT 7
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
Paty JFrame anfänger bräuchte hilfestellung AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
Mausposition relativ zu JFrame bekommen AWT, Swing, JavaFX & SWT 6
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
N CPU Belastung bei offenem JFrame auf fast 100% AWT, Swing, JavaFX & SWT 15
N Knopf ganz oben (JFrame) AWT, Swing, JavaFX & SWT 9
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
E JFrame resizing AWT, Swing, JavaFX & SWT 2
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
VPChief Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen. AWT, Swing, JavaFX & SWT 6
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
L Verbindung von Code und JFrame AWT, Swing, JavaFX & SWT 4
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
K JFrame bei JUnit Tests AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
M Limit für JFrame-Vergrößerung AWT, Swing, JavaFX & SWT 8
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
Ghostman1711 JFrame closing AWT, Swing, JavaFX & SWT 3
R Engineklasse mit JFrame AWT, Swing, JavaFX & SWT 4
ms_cikar Jframe zurück zu frame1 AWT, Swing, JavaFX & SWT 14
C Jframe ohne Rahmen AWT, Swing, JavaFX & SWT 3
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27

Ähnliche Java Themen

Neue Themen


Oben