2010-01-06 4 views

Répondre

42

Appelez setUndecorated(true) sur votre JFrame.

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

enter image description here

+0

Ok.Je vais définir une réponse est une réponse acceptée pour résoudre mon problème.Merci! –

+1

@Peter: Comment puis-je rendre un cadre non affichable? J'ai créé JFrame et ajouté quelques contrôles à l'aide de Netbeans. Dans la fonction principale, code I: MyJframe form = new MyJframe(); form.setUndecorated (true); form.setVisible (true); Mais il lance une exception –

+0

@Chan - Le constructeur MyJFrame appelle-t-il pack()? Cela rendrait le JFrame affichable – willcodejavaforfood

1

Vous pouvez la classe java.awt.Window. Un Window est comme un JFrame, mais sans bordures.

Notez que le constructeur de la classe Window a besoin d'un Frame (java.awt.Frame) comme argument, mais vous pouvez le mettre à null. Vous pouvez également étendre la classe de le personnaliser comme Window 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); 
    } 
} 

En 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!

+0

Note 2 choses: 1) La balise 'swing' est appliquée à cette question. 2) Swing fournit un 'JWindow'. Si vous supprimez ou (de préférence) modifiez votre réponse, vous pouvez éviter certains votes négatifs. ;) –

+0

Window ou Jwindow ne prend pas en charge certains événements de souris et il n'a pas le contrôle de la barre des tâches. –

5

Ce code explique comment vous pouvez l'atteindre.

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

Vous ne pouvez pas décorer le cadre lorsqu'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); 
} 

}

Frame without Border

0

Utilisation procédé frame.getContentPane(); cette méthode retourne dans le contenu de n'importe quelle image. Mais vous devez le convertir en JPanel. PrintUI utilisant JPanel pas JFrame ....