- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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[]
文档评论(0)