Форму: как запретить изменение размера окна?
Я создаю JFrame и я вызываю метод setSize(500, 500). Теперь желаемое поведение заключается в том, что JFrame не должен быть изменен Пользователем в любом состоянии. Либо путем максимизации, либо путем перетаскивания границ. Это должно быть 500x500. Как я могу это сделать? Я также прикрепил код на случай, если вы сможете лучше меня направлять.
    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 ответов
вы можете использовать простой вызов в конструкторе в разделе "инициализация фрейма":
setResizable(false);
после этого вызова окно не будет изменяться.
использовать setResizable на вашем JFrame
yourFrame.setResizable(false);
но расширение JFrame, как правило, плохая идея.
просто напишите одну строку в конструкторе:
setResizable(false);
это сделает невозможным изменение размера кадра.
этот код может помочь вам: [как максимизация, так и предотвращение изменения размера на JFrame ]
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
