网格布局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());
}
}
放置一个JPanel
里面的标签和按钮,然后添加JPanel
您GridLayout
。 GridLayout
自动调整组件的大小以适应放置单元格的大小,当调整大小时,它将根据需要调整组件的大小。如果将它们放置在JPanel
中,那么该单元中只有JPanel
将被调整大小,而不是组件。
编辑
此外,它的Java实践来命名以大写字母的所有类,你layout
应该是Layout
。然而,名称Layout
没有准确地传达类Layout
的目的,因为您的类不是a布局,它是JFrame
。也许LayoutFrame
将是一个更好的类名。
(这是默认的Java实践)变量应该是camelcase,首先是小写字母,后面的单词是大写字母,例如, thisIsAVariable
。或者,您可以使用下划线,这是不正常的Java练习,this_is_a_varaible
。鉴于Java中的类通常以大写字母开头,变量以小写字母开头,因此语句layout Lay = new layout();
看起来非常奇怪,并且初看起来有点混乱。
谢谢先生 – Led
@LedK没问题:D –
你给你的班级名称'布局'是错误的。因为根据Java命名约定,类名应始终以大写字母开头。 – gprathour