web-dev-qa-db-fra.com

Comment supprimer la barre de titre dans JFrame

J'utilise le code suivant pour m'entraîner,

http://docs.Oracle.com/javase/tutorial/uiswing/examples/layout/BorderLayoutDemoProject/src/layout/BorderLayoutDemo.Java

J'ajoute aussi

frame.setSize(frame.getMaximumSize());

dans la méthode createAndShowGUI (),

De plus, je veux que cette fenêtre n'ait pas la barre de titre, ferme et minimise les boutons.

J'ai essayé le code suivant,

frame.setUndecorated(true);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Si j'ai ajouté ce code avant le pack (), il entre en boucle infine avec cette exception Exception dans le thread "AWT-EventQueue-0" Java.lang.NegativeArraySizeException

Si j'ai ajouté la dernière ligne de la méthode createAndShowGUI (), elle lève Exception dans le thread "AWT-EventQueue-0" Java.awt.IllegalComponentStateException: le cadre est affichable.

Que devrais-je faire ?

Merci.

22
CanCeylan
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Already there
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setUndecorated(true);
33
Joop Eggen

Eh bien, l'extrait de code suivant dans createAndShowGUI() a fonctionné pour moi:

JFrame frame = new JFrame("BorderLayoutDemo");
frame.setUndecorated(true); // Remove title bar
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);

Notez que je ne suis pas sûr de ce que vous essayez d'obtenir en définissant manuellement la taille d'un cadre non réalisé à sa taille maximale, qui sera (0, 0) initialement.

5
mre