JFrame sans bordure de cadre, bouton maximum, bouton minimum et icône de cadre

Je voudrais créer une bordure sans cadre, un bouton maximum, un bouton minimum et une icône de cadre.

22
demandé sur guerda 2010-01-06 11:03:58

4 réponses

Appelez setUndecorated(true) sur votre JFrame.

Cette méthode ne peut être appelée que lorsque le cadre n'est pas affichable (voir JavaDoc ).

entrez la description de l'image ici

45
répondu Peter Lang 2015-02-20 20:10:22

CE code explique comment vous pouvez y parvenir.

Note: setUndecorated (true); déclaration dans le constructeur.

Vous ne pouvez pas décorer le cadre alors qu'il est déjà affiché.

public class MyFrame extends JFrame {

private JPanel contentPane;
private JTextField textField;

/**
 * Launch the application.
 */
public static void main(String[] args) {

                MyFrame frame = new MyFrame();
                frame.setVisible(true);

}
/**
 * Create the frame.
 */
public MyFrame() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBackground(Color.ORANGE);
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));


    /* important Statement */
    setUndecorated(true);
}

}

Cadre sans bordure

6
répondu Vishwanath gowda k 2014-02-25 09:22:57

Vous pouvez la classe java.awt.Window. Un {[3] } est comme un JFrame, mais sans frontières.

Notez que le constructeur de classe Window a besoin d'un Frame (java.awt.Frame) comme argument, mais vous pouvez le définir sur null. Vous pouvez également étendre la classe Window pour la personnaliser comme ceci:

public class MyWindow extends Window{
   public MyWindow(){
      super(null); // creates a window with no Frame as owner
      setBounds(x, y, width, height);
      setVisible(true);
   }
}

Dans main, vous pouvez créer une instance de MyWindow au lieu de Window.

public static void main (String[] args) {
    Window window = new MyWindow();
    // Other stuff in main
}

J'espère que cela aide!

1
répondu Ramdane 2015-05-24 21:52:02

Utiliser le cadre de méthode.getContentPane(); cette méthode retourne le contenu de n'importe quelle trame. Mais vous devez le lancer dans un JPanel. PrintUI utilisant JPanel pas JFrame....

0
répondu Harsh Rawat 2015-07-07 23:33:43