Je voudrais créer une bordure sans cadre, un bouton maximum, un bouton minimum et une icône de cadre.
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.
Remarque: setUndecorated (true); 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 le Java.awt.Window
classe. Un Window
est comme un JFrame
, mais sans bordure.
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 ça aide!
A l'intérieur du constructeur, vous pouvez mettre le code setUndecorated (true), il disparaîtra Frame.
Par exemple: // Ceci est un constructeur
public freak() {
super("Images");
panel = new JPanel();
ImageIcon image = new ImageIcon("C:\\Users\\shilu.shilu-PC\\Desktop\\2.jpg");
label = new JLabel(image);
add(panel);
add(label);
//Main thing is this one
setUndecorated(true);
//Just add this code in your constructor
}
Utilisez la méthode frame.getContentPane (); cette méthode retourne à l'intérieur du contenu de n'importe quel cadre. Mais vous devez le lancer dans un JPanel. PrintUI utilisant JPanel pas JFrame ....