java中GridBagLayout布局管理器的详细讲解

GridBagLayout布局的讲解

刚学Java图形界面设计时,很重要的一点就是界面的布局。有很多种布局管理器,其中功能最强大的就是GridBagLayout。

GridBagLayout管理器有一个GridBagConstraints约束,该约束的作用就是控制界面布局的情况,下面简明介绍该约束。

GridBagConstraints也是一个类,首先定义一个对象,比如

GridBagConstraints constraints=new GridBagConstraints();

该约束有一些静态参数,其中最常用的是fill,anchor,ipadx,ipady,和insets等。查阅API文档可以了解其作用,下面我给出一个代码示例。

比如我们现在要设计一个登陆窗口

import javax.swing.*;

import java.awt.*;

public class test

{

static final int WIDTH=300;

static final int HEIGHT=150;

//写一个add方法方便下面在界面中添加组件

public void add(JPanel p,JComponent c,GridBagConstraints constraints,int x,int y,int w,int h)

{

constraints.gridx=x;

constraints.gridy=y;

constraints.gridwidth=w;

constraints.gridheight=h;

p.add(c,constraints);

}

//在构造方法中创建界面

test()

{

JFrame f=new JFrame("登陆窗口");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setSize(WIDTH,HEIGHT);

JPanel contentPane=new JPanel();

f.setContentPane(contentPane);

contentPane.setLayout(new GridBagLayout());//添加布局管理器

GridBagConstraints constraints=new GridBagConstraints();//创建约束

///这是设置在桌面中间弹出窗口

Toolkit kit=Toolkit.getDefaultToolkit();

Dimension screenSize=kit.getScreenSize();

int x=(screenSize.width-WIDTH)/2;

int y=(screenSize.height-HEIGHT)/2;

f.setLocation(x,y);

///

JLabel name=new JLabel("用户名");

JLabel password=new JLabel("密码");

JTextField nameInput=new JTextField(12);

JPasswordField passwordInput=new JPasswordField(12);

JButton b1=new JButton("确定");

JButton b2=new JButton("取消");

//开始用add方法添加上面的组件

constraints.fill=GridBagConstraints.NONE;

constraints.anchor=GridBagConstraints.CENTER;

constraints.insets = new Insets(0,0,10,0); //设置外部填充

add(contentPane,name,constraints,0,0,1,1);

add(contentPane,nameInput,constraints,1,0,1,1);

add(contentPane,password,constraints,0,1,1,1);

add(contentPane,passwordInput,constraints,1,1,1,1);

add(contentPane,b1,constraints,0,2,1,1);

add(contentPane,b2,constraints,1,2,1,1);

f.setResizable(false);

f.setVisible(true);

}

public static void main(String[] args)

{

new test();

}

}

祝你学习愉快!

相关文档
最新文档