webentwicklung-frage-antwort-db.com.de

JFrame: Wie deaktiviere ich die Fenstergröße?

Ich erstelle ein JFrame und rufe die Methode setSize(500, 500) auf. Das gewünschte Verhalten ist nun, dass die Größe von JFrame unter keinen Umständen vom Benutzer geändert werden sollte. Entweder durch Maximieren oder durch Ziehen der Ränder. Es sollte 500x500 sein. Wie kann ich es tun? Ich habe auch den Code angehängt, falls Sie mich besser führen können.

    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

Sie können im Konstruktor unter "Frame-Initialisierung" einen einfachen Aufruf verwenden:

setResizable(false);

Nach diesem Aufruf kann die Größe des Fensters nicht mehr geändert werden.

99
tbodt

Verwenden Sie setResizable auf Ihrem JFrame

yourFrame.setResizable(false);

Die Erweiterung von JFrame ist jedoch im Allgemeinen eine schlechte Idee.

14
mael

Schreiben Sie einfach eine Zeile in den Konstruktor:

setResizable(false);

Dies macht es unmöglich, die Größe des Rahmens zu ändern.

10
Ipsit Gaur

Dieser Code kann Ihnen helfen: [Maximieren und Verhindern der Größenänderung auf einem JFrame]

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

Nur für den Fall, dass jemand das 6. Mal nicht verstanden hat:

setResizable(false);
7
Yaroslav

es ist Ostgebrauch:

  frame.setResizable(false);
6
Caffe Latte

Sie können this.setResizable(false); oder frameObject.setResizable(false); verwenden

5