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();
}
}
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.
Utiliser setResizable sur votre JFrame
yourFrame.setResizable(false);
mais étendre JFrame est généralement une mauvaise idée.
Simplement écrire une ligne dans le constructeur:
setResizable(false);
Ce sera impossible de redimensionner le cadre.
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);
Vous pouvez utiliser this.setResizable(false);
ou frameObject.setResizable(false);
Juste au cas où quelqu'un n'a pas compris la 6ème fois:
setResizable(false);