JFrame: comment désactiver le redimensionnement des fenêtres?

je suis entrain de créer un JFrame et j'ai appeler la méthode setSize(500, 500). Maintenant le comportement désiré est que JFrame ne doit pas être redimensionné par l'utilisateur dans n'importe quelle condition. Soit en maximisant, soit en repoussant les frontières. Ça devrait être 500x500. Comment puis-je le faire? J'ai aussi 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();

}

}
29
demandé sur mKorbel 2013-08-03 14:12:31

7 réponses

Vous pouvez utiliser un simple appel dans le constructeur sous "frame initialization":

setResizable(false);

Après cet appel, la fenêtre ne sera pas être redimensionnables.

86
répondu tbodt 2016-07-18 16:50:17

Utiliser setResizable sur votre JFrame

yourFrame.setResizable(false);

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

12
répondu mael 2013-08-03 10:13:33

Simplement écrire une ligne dans le constructeur:

setResizable(false);

Ce sera impossible de redimensionner le cadre.

8
répondu Ipsit Gaur 2013-08-03 10:44:11

ce Code peut vous aider : [ à la fois maximiser et empêcher redimensionner sur une JFrame ]

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
7
répondu Butani Vijay 2013-08-03 10:16:54

c'est de l'utiliser:

  frame.setResizable(false);
5
répondu Caffe Latte 2013-08-03 10:14:08

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

3
répondu Deepak S. Gavkar 2013-08-03 18:19:54

Juste au cas où quelqu'un n'a pas compris la 6ème fois:

setResizable(false);
3
répondu Yaroslav 2016-12-07 16:16:04