java中gridbaglayout的用法

上传人:xiao****1972 文档编号:84822173 上传时间:2019-03-05 格式:DOC 页数:19 大小:333.50KB
返回 下载 相关 举报
java中gridbaglayout的用法_第1页
第1页 / 共19页
java中gridbaglayout的用法_第2页
第2页 / 共19页
java中gridbaglayout的用法_第3页
第3页 / 共19页
java中gridbaglayout的用法_第4页
第4页 / 共19页
java中gridbaglayout的用法_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《java中gridbaglayout的用法》由会员分享,可在线阅读,更多相关《java中gridbaglayout的用法(19页珍藏版)》请在金锄头文库上搜索。

1、布局管理器 GridBagLayout 的使用由TMDC搜集整理,欢迎访问我的小博客!Java布局管理器有FlowLayout, BorderLayout, GridLayout, CardLayout, GridBagLayout等,相比较而言,GridBagLayout的使用方式要复杂一些。但它的表现力也最丰富。之前我对GridBagLayout的使用也是一知半解,具体的用法不是十分的明了。这两天认真的看了这一块,就写了下来。使用 GridBagLayout的主要工作就是设置组件的约束,通过GridBagConstraints的实例设置。GridBagConstraints 主要有11个参

2、数:gridx, gridy, gridwidth ,gridheight ,anchor ,fill ,weightx ,weighty ,insets ,ipadx ,ipady;每个参数的意义可以参考java api上的说明。本文的最后附有anchor属性和fill属性的示例。实际使用中根据自己的需要设置特定的属性。在Java api中给出了一个GridBagLayout的例子和实现,下面的是自己的实现方式。CODEimport java.awt.*;import java.awt.event.*;import java.applet.*;public class GridBagLayo

3、utDemo extends Applet GridBagLayout gbaglayout;GridBagConstraints constraints;public void init() gbaglayout = new GridBagLayout(); constraints = new GridBagConstraints(); setLayout(gbaglayout); /Button 1 Button btn1 = new Button(Button01); constraints.gridx = 0; constraints.gridy = 0; constraints.gr

4、idwidth = 1; constraints.gridheight = 1; constraints.anchor = GridBagConstraints.CENTER; constraints.fill = GridBagConstraints.NONE; constraints.weightx = 0.0; constraints.weighty = 0.0; constraints.insets = new Insets(0, 0, 0, 0); constraints.ipadx = 0; constraints.ipady = 0; makeButton(gbaglayout,

5、 constraints, btn1); /Button 2 Button btn2 = new Button(Button02); constraints.gridx = 1; makeButton(gbaglayout, constraints, btn2); /Button 3 Button btn3 = new Button(Button03); constraints.gridx = 2; makeButton(gbaglayout, constraints, btn3); /Button 4 Button btn4 = new Button(Button04); constrain

6、ts.gridx = 3; makeButton(gbaglayout, constraints, btn4);/Button 5 Button btn5 = new Button(Button05); constraints.gridx = 0; constraints.gridy = 1; constraints.gridwidth = 4; makeButton(gbaglayout, constraints, btn5); /Button 6 Button btn6 = new Button(Button06); constraints.gridx = 0; constraints.g

7、ridy = 2; constraints.gridwidth = 3; makeButton(gbaglayout, constraints, btn6); /Button 7 Button btn7 = new Button(Button07); constraints.gridx = 3; constraints.gridy = 2; constraints.gridwidth = 1; makeButton(gbaglayout, constraints, btn7); /Button 8 Button btn8 = new Button(Button08); constraints.

8、gridx = 0; constraints.gridy = 3; constraints.gridwidth = 1; constraints.gridheight = 2; makeButton(gbaglayout, constraints, btn8); /Button 9 Button btn9 = new Button(Button09); constraints.gridx = 1; constraints.gridy = 3; constraints.gridwidth = 3; constraints.gridheight = 1; makeButton(gbaglayout

9、, constraints, btn9); /Button 10 Button btn10 = new Button(Button10); constraints.gridx = 1; constraints.gridy = 4; constraints.gridwidth = 3; constraints.gridheight = 1; makeButton(gbaglayout, constraints, btn10);private void makeButton(GridBagLayout gbaglayout, GridBagConstraints constraints, Comp

10、onent component) gbaglayout.setConstraints(component, constraints); add(component);public static void main(String args) Frame frame = new Frame(GridBagLayoutDemo); frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); GridBagLayoutDemo demo = new Gri

11、dBagLayoutDemo(); demo.init(); frame.add(BorderLayout.CENTER, demo); frame.setSize(270, 150); /frame.setSize(361, 254); frame.setVisible(true);CODE显示窗口可以如图所示划分为 5 行和 4 列,每个按钮所在的单元可以很容易的确定,所以 gridx 和 gridy 的值都很容易确定,组件放置在的位置也就确定了。然而,组件都有一个默认的大小,它和它所在的单元格大小一般情况下都是不同的,并且如果窗口发生变化时,组件做出什么样的改变就要用到fill ,wei

12、ghtx 和 weighty了。结合具体的例子来看:设置 Button 1/Button 1Button btn1 = new Button(Button01);/所在单元格为(0, 0)constraints.gridx = 0;constraints.gridy = 0;/占用一个长度长和一个长度宽constraints.gridwidth = 1;constraints.gridheight = 1;/这里使用默认的 anchorconstraints.anchor = GridBagConstraints.CENTER;/设置NONE填充constraints.fill = GridB

13、agConstraints.NONE;/设置填充权重constraints.weightx = 0.0;constraints.weighty = 0.0;/Insets, ipadx, ipady使用默认值constraints.insets = new Insets(0, 0, 0, 0);constraints.ipadx = 0;constraints.ipady = 0;/添加 Button01 按钮makeButton(gbaglayout, constraints, btn1);设置 Button02, Button03, Button04/Button 2Button btn2

14、 = new Button(Button02);constraints.gridx = 1;makeButton(gbaglayout, constraints, btn2);/Button 3Button btn3 = new Button(Button03);constraints.gridx = 2;makeButton(gbaglayout, constraints, btn3);/Button 4Button btn4 = new Button(Button04);constraints.gridx = 3;makeButton(gbaglayout, constraints, btn4);Button02, Button03, Button04和Button01的区别是,只需要设置他们的gridx值;其他的不变。设置 Button05/Button 5Button btn5 = new Button(Button05);/所在单元格为(0, 1)constraints.gridx = 0;constraints.gri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号