45

我正在创建一个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();

}

}
4

8 回答 8

114

您可以在“框架初始化”下的构造函数中使用一个简单的调用:

setResizable(false);

在此调用之后,窗口将无法调整大小。

于 2013-08-03T10:14:22.630 回答
16

在你的 JFrame 上使用setResizable

yourFrame.setResizable(false);

但是扩展 JFrame 通常是个坏主意。

于 2013-08-03T10:13:33.593 回答
11

只需在构造函数中写一行:

setResizable(false);

这将无法调整框架的大小。

于 2013-08-03T10:21:07.257 回答
8

此代码可能对您有所帮助:[在 JFrame 上最大化和防止调整大小]

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
于 2013-08-03T10:16:54.280 回答
7

它很容易使用:

frame.setResizable(false);
于 2013-08-03T10:14:08.910 回答
7

以防万一有人不理解第六次:

setResizable(false);
于 2016-12-07T16:16:04.810 回答
5

您可以使用this.setResizable(false);frameObject.setResizable(false);

于 2013-08-03T18:19:54.893 回答
0

如果你正在定义这样的类

className extend JFrame{}

使用此代码

this.setResizable(false);

或者

setResizable(false);
于 2021-10-26T11:44:13.373 回答