web-dev-qa-db-ja.com

JFrame:ウィンドウのサイズ変更を無効にする方法

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();

}

}
38
Zulfiqar Junejo

「フレームの初期化」の下のコンストラクターで簡単な呼び出しを使用できます。

setResizable(false);

この呼び出しの後、ウィンドウはサイズ変更できません。

99
tbodt

JFrameで setResizable を使用します

yourFrame.setResizable(false);

ただし、JFrameを拡張することは一般に悪い考えです。

14
mael

コンストラクターに1行書くだけです。

setResizable(false);

これにより、フレームのサイズを変更できなくなります。

10
Ipsit Gaur

このコードは役に立つかもしれません:[JFrameでのサイズ変更の最大化と防止の両方]

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

誰かが6回目を理解できなかった場合に備えて:

setResizable(false);
7
Yaroslav

それは東の使用です:

  frame.setResizable(false);
6
Caffe Latte

this.setResizable(false);またはframeObject.setResizable(false);を使用できます

5