web-dev-qa-db-fra.com

JFrame: Comment désactiver le redimensionnement de la fenêtre?

Je crée un JFrame et j'appelle la méthode setSize(500, 500). Maintenant, le comportement souhaité est que JFrame ne doit pas être redimensionné par l'utilisateur dans aucune condition. Soit en maximisant ou en faisant glisser les frontières. Il devrait être 500x500. Comment puis-je le faire? J'ai également joint le code au cas où vous pourriez mieux me guider.

    package com.techpapa;    
    import javax.swing.*;  
    import Java.awt.*;  
    import Java.awt.event.*;  

    public class MainWindow extends JFrame{


private JTextField
            write;
private JRadioButton
            rb1,
            rb2,
            rb3;
private ButtonGroup
            bg;

private ActionListener al = new ActionListener(){
    public void actionPerformed(ActionEvent e){
        write.setText("JRadioButton : " + ((JRadioButton)e.getSource()).getText());
    }

};

public MainWindow(){
    //Frame Initialization
    setSize(500, 500);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setLayout(null);
    setTitle(".:JRadioButton:.");
    setVisible(true);

    //Components Initialization
    write = new JTextField(20);
    write.setEditable(false);
    rb1 = new JRadioButton("Male", false);
    rb1.addActionListener(al);
    rb2 = new JRadioButton("Female", false);
    rb2.addActionListener(al);
    rb3 = new JRadioButton("I don't want to specify", true);
    rb3.addActionListener(al);
    bg = new ButtonGroup();

    //Add radio buttons to buttongroup
    bg.add(rb1); bg.add(rb2); bg.add(rb3);

    //Add to window
    add(write);
    write.setBounds(140, 100, 150, 20);
    write.setDragEnabled(true);
    add(rb1);
    rb1.setBounds(180, 200, 100, 30);
    add(rb2);
    rb2.setBounds(180, 225, 100, 30);
    add(rb3);
    rb3.setBounds(180, 250, 130, 30);

}

public static void main(String[] args) {
    new MainWindow();

}

}
38
Zulfiqar Junejo

Vous pouvez utiliser un appel simple dans le constructeur sous "initialisation du cadre":

setResizable(false);

Après cet appel, la fenêtre ne sera plus redimensionnable.

99
tbodt

Utilisez setResizable sur votre JFrame

yourFrame.setResizable(false);

Mais étendre JFrame est généralement une mauvaise idée.

14
mael

Il suffit d'écrire une ligne dans le constructeur:

setResizable(false);

Cela rendra impossible le redimensionnement du cadre.

10
Ipsit Gaur

Ce code peut vous aider à: [Maximiser et empêcher le redimensionnement sur un JFrame]

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
8
Butani Vijay

Juste au cas où quelqu'un ne comprendrait pas la 6ème fois:

setResizable(false);
7
Yaroslav

c'est est utilisation:

  frame.setResizable(false);
6
Caffe Latte

Vous pouvez utiliser this.setResizable(false); ou frameObject.setResizable(false);

5
Deepak S. Gavkar