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.
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 ).
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);
}
}
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!
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....