java 设置布局_Java Swing布局管理器GridBagLayout的使用示例 [转]

importjavax.swing.JPanel;public class GridBagDemo extendsJFrame {public static voidmain(String args[]) {

GridBagDemo demo= newGridBagDemo();

}publicGridBagDemo() {

init();this.setSize(600,600);this.setVisible(true);

}public voidinit() {

j1= new JButton("打开");

j2= new JButton("保存");

j3= new JButton("另存为");

j4= newJPanel();

String[] str= { "java笔记", "C#笔记", "HTML5笔记"};

j5= newJComboBox(str);

j6= newJTextField();

j7= new JButton("清空");

j8= newJList(str);

j9= newJTextArea();

j9.setBackground(Color.PINK);//为了看出效果,设置了颜色

GridBagLayout layout = newGridBagLayout();this.setLayout(layout);this.add(j1);//把组件添加进jframe

this.add(j2);this.add(j3);this.add(j4);this.add(j5);this.add(j6);this.add(j7);this.add(j8);this.add(j9);

GridBagConstraints s= new GridBagConstraints();//定义一个GridBagConstraints,//是用来控制添加进的组件的显示位置

s.fill =GridBagConstraints.BOTH;//该方法是为了设置如果组件所在的区域比组件本身要大时的显示情况//NONE:不调整组件大小。//HORIZONTAL:加宽组件,使它在水平方向上填满其显示区域,但是不改变高度。//VERTICAL:加高组件,使它在垂直方向上填满其显示区域,但是不改变宽度。//BOTH:使组件完全填满其显示区域。

s.gridwidth=1;//该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个

s.weightx = 0;//该方法设置组件水平的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间

s.weighty=0;//该方法设置组件垂直的拉伸幅度,如果为0就说明不拉伸,不为0就随着窗口增大进行拉伸,0到1之间

layout.setConstraints(j1, s);//设置组件

s.gridwidth=1;

s.weightx= 0;

s.weighty=0;

layout.setConstraints(j2, s);

s.gridwidth=1;

s.weightx= 0;

s.weighty=0;

layout.setConstraints(j3, s);

s.gridwidth=0;//该方法是设置组件水平所占用的格子数,如果为0,就说明该组件是该行的最后一个

s.weightx = 0;//不能为1,j4是占了4个格,并且可以横向拉伸,//但是如果为1,后面行的列的格也会跟着拉伸,导致j7所在的列也可以拉伸//所以应该是跟着j6进行拉伸

s.weighty=0;

layout.setConstraints(j4, s)

;s.gridwidth=2;

s.weightx= 0;

s.weighty=0;

layout.setConstraints(j5, s);

;s.gridwidth=4;

s.weightx= 1;

s.weighty=0;

layout.setConstraints(j6, s);

;s.gridwidth=0;

s.weightx= 0;

s.weighty=0;

layout.setConstraints(j7, s);

;s.gridwidth=2;

s.weightx= 0;

s.weighty=1;

layout.setConstraints(j8, s);

;s.gridwidth=5;

s.weightx= 0;

s.weighty=1;

layout.setConstraints(j9, s);

}

JButton j1;

JButton j2;

JButton j3;

JPanel j4;

JComboBox j5;

JTextField j6;

JButton j7;

JList j8;

JTextArea j9;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值