Hauptfenster nie maximiert

Ideen, wie TV-Browser verbessert werden kann
Antworten
Benutzeravatar
materthron
Junior Member
Beiträge: 32
Registriert: 23 Dez 2005, 16:05

Hauptfenster nie maximiert

Beitrag von materthron »

Hallo!
Ich habe bemerkt, dass das TVB-Hauptfenster nie maximiert ist.
Das heißt das MainWindow.getInstamce().getState() nie MAXIMIZED_BOTH wird.

Der Grund ist folgender:

Datei: tvbrowser/branches/branch-2-3-db/tvbrowser/src/tvbrowser/ui/SystemTray.java

Code: Alles auswählen

  194       MainFrame.getInstance().addComponentListener(new ComponentListener() {
  195 
  196         public void componentResized(ComponentEvent e) {
  197           int state = MainFrame.getInstance().getExtendedState();
  198           if ((state & JFrame.MAXIMIZED_BOTH) == JFrame.MAXIMIZED_BOTH) {
  199             mState = JFrame.MAXIMIZED_BOTH;
  200           } else {
  201             mState = JFrame.NORMAL;
  202           }
  203         }
BTW: Warum hier ein ComponentListener?
Wenn das Fenster MAXIMIZED_BOTH ist, dann kann man es je ohnehin nicht in seiner größe ändern.

mfg materthron
ds10
Site Admin
Beiträge: 19191
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

Das ist aber korrekt so, wenn man überprüfen möchte ob das Fenster maximiert ist, muss man immer den aktuellen ExtendedState logisch mit MAXIMIZED_BOTH verunden und dann erst mit MAXIMIZED_BOTH vergleichen.

Siehe:
http://java.sun.com/j2se/1.5.0/docs/api ... MIZED_BOTH

Warum es ein ComponentListener ist weiß ich auch nicht, macht aber nichts, funktioniert ja. ;-)
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Benutzeravatar
materthron
Junior Member
Beiträge: 32
Registriert: 23 Dez 2005, 16:05

Beitrag von materthron »

Warum ist dann aber das Hauptfenster nie MAXIMIZED_BOTH?
ds10
Site Admin
Beiträge: 19191
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

materthron hat geschrieben:Warum ist dann aber das Hauptfenster nie MAXIMIZED_BOTH?
Also bei mir ist es das, wenn ich es auf Vollbild schalte.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
ds10
Site Admin
Beiträge: 19191
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

Ich denke ich weiß woran es liegt, du benutzt getState() anstatt getExtendedState(), und der Java Quellcode sagt für die getState()-Methode:

Code: Alles auswählen

    /**
     * Gets the state of this frame (obsolete).
     * <p>
     * In older versions of JDK a frame state could only be NORMAL or
     * ICONIFIED.  Since JDK 1.4 set of supported frame states is
     * expanded and frame state is represented as a bitwise mask.
     * <p>
     * For compatibility with old programs this method still returns
     * <code>Frame.NORMAL</code> and <code>Frame.ICONIFIED</code> but
     * it only reports the iconic state of the frame, other aspects of
     * frame state are not reported by this method.
     * 
     * @return  <code>Frame.NORMAL</code> or <code>Frame.ICONIFIED</code>.
     * @see     #setState(int)
     * @see     #getExtendedState
     */
    public synchronized int getState() {
        return (getExtendedState() & ICONIFIED) != 0 ? ICONIFIED : NORMAL;
    }
Das kann also gar nicht MAXIMIZED_BOTH werden.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Antworten