java学习——53.网格包布局

GridBagLayout网格包布局是比较灵活的布局,它将容器分成若干行和列网格,每个组件可占据其中的若干行或列的多个单元格。

GridBagLayout类声明如下:

public class GridBagLayout extends Object implements LayoutManager2,Serializable

{

public GridBagLayout()

public void setConstraints(Component comp,GridBagConstraints cons)

}

网格包布局时,其组件具体放在哪一行哪一列需要用以下类来约束。

public class GridBagConstraints extends Object implements Cloneable, Serializable

{

public int gridwidth;                      //指定组件宽度

public int gridheight;                     //指定组件高度

public intgridx;                             //指定水平坐标

public int gridy                              //指定垂直坐标

public int fill;                                  //指定是否调整组件大小及调整原则

public GridBagConstraints();      //构造方法,创建对象

}

具体请见示例。

import java.awt.*;

import java.awt.event.*;

public class learnjava extends Frame{

private static TextField t;

private static Button b1,b2,b3,b4;

public static void main(String args[]){

learnjava jsq=new learnjava();

jsq.setTitle("计算器");

jsq.setSize(200,200);

jsq.setLocation(200, 200);

GridBagLayout gridbag=new GridBagLayout();

jsq.setLayout(gridbag);

jsq.setBackground(new Color(554254));

jsq.setFont(new Font("黑体",2,20));

t=new TextField(5);

GridBagConstraints s=new GridBagConstraints();

s.gridx=1;

s.gridy=1;

s.gridwidth=4;

s.gridheight=1;

s.fill=GridBagConstraints.BOTH;

gridbag.setConstraints(t, s);

jsq.add(t);

b1=new Button(" 1 ");

s.gridx=1;

s.gridy=2;

s.gridwidth=1;

s.gridheight=1;

gridbag.setConstraints(b1, s);

jsq.add(b1);

b2=new Button(" 2 ");

s.gridx=2;

s.gridy=2;

gridbag.setConstraints(b2, s);

jsq.add(b2);

b3=new Button(" = ");

s.gridx=3;

s.gridy=2;

gridbag.setConstraints(b3, s);

jsq.add(b3);

b4=new Button(" + ");

s.gridx=4;

s.gridy=2;

gridbag.setConstraints(b4, s);

jsq.add(b4);

jsq.addWindowListener(new WindowAdapter(){

publicvoid windowClosing(WindowEvent e){

System.exit(0);

}

});

jsq.setVisible(true);

}

}

其运行结果如下:

(0)

相关推荐

  • (10条消息) Java FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout布局管理器

    一.FlowLayout布局管理器 FlowLayout() 构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位. FlowLayout(int align) 构造 ...

  • Java的GridBagLayout布局

    Java的GridBagLayout布局

  • java学习——52.网格布局

    网格布局类似于以表格的形式,将组件放在一个个的单元格中. GridLayout网格布局管理器将容器划分为大小相等的若干行乘若干列的网格,组件大小随容器大小而变化. GridLayout类声明如下: p ...

  • java学习——54.混合布局

    在此篇之前,已经介绍了四种布局方式,流布局,边布局,网格布局和网格包布局. (详情请看java学习--52.网格包布局:java学习--51.网格布局:java学习--50.边布局:java学习--4 ...

  • java学习——51.边布局

    边布局是框架Frame.JFrame的默认布局方式. BorderLayout布局是将容器划分为5个区域:东.南.西.北.中,组件占满一条边或中间部分. 当容器大小改变时,四边不变,中间组件的长度和宽 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...