2013-03-11 8 views
9

JFrame con il pulsante di ingrandimento nascosto o senza, ma dovrebbe essere possibile ridimensionare utilizzando il mouse (facendo clic e trascinando il bordo jFrame). setResizable(false) disabilita solo il pulsante minimizza ma non è in grado di ridimensionare il mouse.Disabilita massimizza in jFrame e ridimensionabile utilizzando il mouse

+0

A meno che non si scriva il proprio delegato dell'interfaccia utente della finestra, questo non è possibile in Java nativo – MadProgrammer

+0

Vedere [questo] (http://stackoverflow.com/questions/13065032/swing-resizing-a-jframe-like-frames-in-linux-eg/13067244#13067244) simile risposta –

risposta

0

Un'opzione potrebbe essere quella di utilizzare uno JDialog anziché uno JFrame. Ciò consente alla finestra di essere ridimensionabile manualmente ma non massimizzabile. L'unico problema con questo è che si perdono entrambi i pulsanti minimizza e massimizza. Questo potrebbe o non potrebbe essere un problema per la tua applicazione.

+0

Mi dispiace, ma ho anche bisogno di ridurre al minimo il finestra. – Abin

2

Personalmente non riesco a pensare a un motivo per consentire il ridimensionamento e non consentire massimizzare, ma qui è un esempio di come evitare di massimizzare un JFrame pur consentendo di ridimensionare e ridurre al minimo. Testato su Windows, non testato su tutte le altre piattaforme. Il flash a schermo intero viene ridotto a icona utilizzando setMaximizedBounds().

final JFrame jFrameNoMax = new JFrame() { 
     { 
      setMaximizedBounds(new Rectangle(0, 0)); 
      addWindowStateListener(new WindowStateListener() { 
       public void windowStateChanged(final WindowEvent e) { 
        if (e.getNewState() == MAXIMIZED_BOTH) { 
         setExtendedState(NORMAL); 
        } 
       } 
      }); 
     } 
    }; 

    // Tester 
    jFrameNoMax.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    jFrameNoMax.setSize(300, 300); 
    jFrameNoMax.setLocation(300, 300); 
    jFrameNoMax.setVisible(true); 
+0

OK in Windows, e mi dispiace dirlo può essere massimizzare in mac – Abin

1

È possibile adottare le seguenti misure:

-Diritto cliccare sul JFrame proprietà -Selezionare -Uncheck la casella ridimensionabile proprietà -Chiudere -Eseguire il programma

vedere l'illustrazione allegata : Freeze maximize button

Problemi correlati