网格布局Java

问题描述:

我创建了一个显示按钮和标签的网格的java程序,我想知道如何在标签和按钮上留下约束,以便在窗口被拖出时不会重新调整大小..任何人都可以请帮助?网格布局Java

这是我的网格布局类

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()); 
} 
} 
+1

你给你的班级名称'布局'是错误的。因为根据Java命名约定,类名应始终以大写字母开头。 – gprathour

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

编辑

此外,它的Java实践来命名以大写字母的所有类,你layout应该是Layout。然而,名称Layout没有准确地传达类Layout的目的,因为您的类不是a布局,它是JFrame。也许LayoutFrame将是一个更好的类名。

(这是默认的Java实践)变量应该是camelcase,首先是小写字母,后面的单词是大写字母,例如, thisIsAVariable。或者,您可以使用下划线,这是不正常的Java练习,this_is_a_varaible。鉴于Java中的类通常以大写字母开头,变量以小写字母开头,因此语句layout Lay = new layout();看起来非常奇怪,并且初看起来有点混乱。

+0

谢谢先生 – Led

+0

@LedK没问题:D –