web-dev-qa-db-fra.com

Comment désactiver (ou masquer) le bouton de fermeture (x) d'un JFrame?

J'ai une fenêtre (dérivée de JFrame) et je veux désactiver le bouton de fermeture pendant certaines opérations qui ne sont pas interruptibles. Je sais que je peux faire en sorte que le bouton ne fasse rien (ou appeler un gestionnaire dans un WindowListener) en appelant

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

mais je tiens à préciser visuellement qu'il est inutile de cliquer dessus.

24
florin

Si je comprends bien, ce rapport de bogue indique que cela n’est actuellement pas possible.

10
bdumitriu

C'est probablement le meilleur que vous obtiendrez:

setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.NONE);

Ceci supprimera toute la barre de titre, Java ne spécifiant pas vraiment un moyen de supprimer des composants individuels de la barre de titre

modifier:

Il peut y avoir un moyen, consultez ces discussions:

20
Malfist

Pour ceux qui arrivent au plus tard en 2008, un changement a été rendu possible. Voir ce lien

La deuxième réponse à partir du bas montre comment le faire par nom.

5
Spencer Kormos

Cela vous aidera

frame.setDefaultCloseOperation(0);
2
Vörös Richárd

Pour simplement les faire disparaître, essayez ce qui suit:

setUndecorated(true);
0
Cancer000

S'il vous plaît essayez ceci

frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        e.getWindow().setVisible(false);
            try {
                wait();
            } catch (InterruptedException ex) {
                Logger.getLogger(WindowsActions.class.getName()).log(Level.SEVERE, null, ex);
            }
      }
    });
0
Ab Hin