网格布局Java

网格布局Java,java,swing,jbutton,jlabel,grid-layout,Java,Swing,Jbutton,Jlabel,Grid Layout,我已经创建了一个java程序,它显示了一个按钮和标签的网格,我想知道如何在标签和按钮上设置一个约束,这样当窗口被拖出时,它们就不会改变大小。。有人能帮忙吗 这是我的gridlayout课程 package JFrameTester; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JL

我已经创建了一个java程序,它显示了一个按钮和标签的网格,我想知道如何在标签和按钮上设置一个约束,这样当窗口被拖出时,它们就不会改变大小。。有人能帮忙吗

这是我的gridlayout课程

package JFrameTester;

import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class layout extends JFrame {

    JButton button1,button2,button3;
    JLabel label1,Label2,Label3;

    public layout (){

    setLayout(new GridLayout(2, 2));

    button1 =  new JButton ("button1");

    add(button1);

    label1 =  new JLabel ("label1");
    add(label1);

    button2 =  new JButton ("button1");
    add(button2);

    Label2 =  new JLabel ("Label2");
    add(Label2);

    button3 =  new JButton ("button1");
    add(button3);

    Label3 =  new JLabel ("Label3");
    add(Label3);

        }


}
这是我的主课

public class JFrameTester {


/**
 * @param args
 */
public static void main(String[] args) {


    layout Lay = new layout();
     Lay.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     Lay.setVisible(true);


    // JFrame frame = new JFrame("BUY COMPUTER");

    Lay.setSize(800, 600);
        //frame.pack();
   //  frame.setVisible(true);
     Lay.addWindowListener(new MyWindowListener());
 }
}

将标签和按钮放置在
JPanel
中,然后将该
JPanel
添加到
GridLayout
GridLayout
自动调整组件大小,以适应放置组件的单元格大小,当调整
JFrame
大小时,它将根据需要调整组件大小。如果将它们放置在
JPanel
s中,则只有该单元格中的
JPanel
将被调整大小,而不是组件

编辑

除此之外,Java的做法是用大写字母命名所有类,
layout
应该是
layout
。但是,名称
Layout
不能准确地表达类
Layout
的目的,因为您的类不是布局,而是一个
JFrame
。也许
LayoutFrame
会是一个更好的类名


并且(这是默认的Java实践)变量应该是camelcase,以小写字母开头,后面的单词有大写字母,例如
thisisaviable
。或者,您可以使用下划线,这不是正常的Java实践,
这是一个变量
。假设Java类通常以大写字母开头,变量以小写字母开头,那么语句
layout Lay=new layout()乍看起来很奇怪,有点混乱。

您给类名“layout”是错误的。因为根据Java命名约定,类名应该总是以大写字母开头。