GUI——布局管理器_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > GUI——布局管理器

GUI——布局管理器

 2017/8/26 1:08:43  i拾贝  程序员俱乐部  我要评论(0)
  • 摘要:GUI——布局管理器1.GUI之布局管理器布局管理器java语言中,提供了布局管理器类的对象可以管理管理Component在Container中的布局,不必直接设置Component的位置和大小每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断尺寸大小时,就会调用其对应的布局管理器,调用Container的setLayout方法,改变其布局管理器对象
  • 标签:

GUI——布局管理器

1.GUI之布局管理器

?

布局管理器

java语言中,提供了布局管理器类的对象可以管理

?

管理Component在Container中的布局,不必直接设置Component的位置和大小

每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断尺寸大小时,

就会调用其对应的布局管理器,调用Container的setLayout方法,改变其布局管理器对象。

?

AWT提供了五种布局管理器类

FlowLayout

BorderLayout

GridLayout

CardLayout

GridBagLayout

?

2.FlowLayout布局管理器(流式布局,顺序布局)

java.awt

Class FlowLayout

?

FlowLayout时Panel类的默认布局管理器

FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行。

不改变组件的大小,按组件原始尺寸显示组件,可设置不同的组件间距,行距和对其方式。

?

FlowLayout布局管理器默认的对其方式时居中。

?

FlowLayout的构造方法

Constructor Summary(构造函数的总结)

?

Constructors(构造函数)

Constructor and Description(构造函数和描述)

FlowLayout()

Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.

FlowLayout(int align)

Constructs a new FlowLayout with the specified alignment and a default 5-unit horizontal and vertical gap.

FlowLayout(int align, int hgap, int vgap)

Creates a new flow layout manager with the indicated alignment and the indicated horizontal and vertical gaps.

?

实例1:

class="java">/*	范例名称:FlowLayout 用法举例
 * 源文件名称:TestFlowLayout.java
 *	要  点:
 *	1. 布局管理器的概念和作用
 *   2. FlowLayout的性质及用法
 */

import java.awt.*;

public class TestFlowLayout {
    public static void main(String args[]) {
Frame f = new Frame("Flow Layout");
        Button button1 = new Button("Ok");
        Button button2 = new Button("Open");
        Button button3 = new Button("Close");
//new FlowLayout(FlowLayout.LEFT)设置Frame的布局,默认为居中,此次为左对齐
        f.setLayout(new FlowLayout(FlowLayout.LEFT));
        f.add(button1);
        f.add(button2);
        f.add(button3);
        f.setSize(100,100);
        f.setVisible(true);
    }
}

?

实例2:

import java.awt.*;
public class TestFlowLayout2 {
    public static void main(String args[]) {
        Frame f = new Frame("Java Frame");
//创建一个新的流布局管理器,该布局管理器具有指示对齐和指示的水平和垂直间隔。(对齐,水平,垂直)
        FlowLayout l = new FlowLayout(FlowLayout.CENTER, 20, 40);
//为Frame设置布局方式
        f.setLayout(l); 
//设置位置
        f.setLocation(300,400);
//设置大小
        f.setSize(300,200);
设置背景色
        f.setBackground(new Color(204,204,255));
        for(int i = 1; i<=7; i++){
            f.add(new Button("BUTTON"));
        }
        f.setVisible(true);
    }
}

?

?

?

3.BorderLayout布局管理器(边框布局,边界布局,边界布局管理器)

java.awt

Class BorderLayout

?

?

BorderLayout时Frame的默认布局管理器,

BorderLayout将整个容器的布局划分成东西南北中五个区域,组件只能被添加到指定区域。

东EAST

西WEST

南SOUTH

北NOUTH

中CENTER

?

不指定组件的加入部位,则默认加入到CENTER区。

每个区域只能加入一个组件,如加入多个,先前加入的会被覆盖。

?

BorderLayout布局,容器尺寸缩放原则

南,北两个区域在水平方向缩放

东,西两个区域在垂直方向缩放

中部可在两个方向上缩放

?

实例3:

/*	范例名称:BorderLayout应用举例
 * 源文件名称:TestBorderLayout.java
 *	要  点:FlowLayout布局管理器的性质及用法
 */

import java.awt.*;
public class TestBorderLayout {
public static void main(String args[]) {
Frame f;
f = new Frame("Border Layout");
Button bn = new Button("BN");
Button bs = new Button("BS");
Button bw = new Button("BW");
Button be = new Button("BE");
Button bc = new Button("BC");
f.add(bn, "North");
f.add(bs, "South");
f.add(bw, "West");
f.add(be, "East");
f.add(bc, "Center");
// 也可使用下述语句,推荐使用下面这种形式,不容易出错
/*
f.add(bn, BorderLayout.NORTH);
f.add(bs, BorderLayout.SOUTH);
f.add(bw, BorderLayout.WEST);
f.add(be, BorderLayout.EAST);
f.add(bc, BorderLayout.CENTER);
*/
f.setSize(200,200);
f.setVisible(true);
}
}

?

?

4.GridLayout布局管理器(网格布局 )

?

java.awt

Class GridLayout

?

GridLayout布局管理器将空间划分成规则的矩形网格,

每个单元格区域大小相等。

组件被添加到每个单元格中,先从左到有填满一行后换行。再从上到下。

?

在GridLayout构造方法中指定分割的行数和列数。

如:

GridLayout(3,4);//三行四列

?

实例4:

/*	范例名称:GridLayout应用举例
 * 源文件名称:TestGridLayout
 *	要  点:GridLayout布局管理器的性质及用法
 */

import java.awt.*;
public class TestGridLayout {
public static void main(String args[]) {
        Frame f = new Frame("GridLayout Example");
        Button b1 = new Button("b1");
        Button b2 = new Button("b2");
        Button b3 = new Button("b3");
        Button b4 = new Button("b4");
        Button b5 = new Button("b5");
        Button b6 = new Button("b6");
        f.setLayout (new GridLayout(3,2));
        f.add(b1);        
        f.add(b2);
        f.add(b3);        
        f.add(b4);
        f.add(b5);        
        f.add(b6);
//pack();打包,
        f.pack();          
        f.setVisible(true);
}
}

?

?

?

5.测试练习

用FlowLayout,BorderLayout,GridLayout来实现较为复杂的布局。

?

实例5:

import java.awt.*;
public class TenButtons {
  public static void main(String args[]) {
    Frame f = new Frame("Java Frame");
//两行一列
    f.setLayout(new GridLayout(2,1)); 
    f.setLocation(300,400);
    f.setSize(300,200);
    f.setBackground(new Color(204,204,255));
    Panel p1 = new Panel(new BorderLayout());
    Panel p2 = new Panel(new BorderLayout());
Panel p11 = new Panel(new GridLayout(2,1));
    Panel p21 = new Panel(new GridLayout(2,2));
    p1.add(new Button("BUTTON"),BorderLayout.WEST);
    p1.add(new Button("BUTTON"),BorderLayout.EAST);
    p11.add(new Button("BUTTON"));
    p11.add(new Button("BUTTON"));
    p1.add(p11,BorderLayout.CENTER);
    p2.add(new Button("BUTTON"),BorderLayout.WEST);
    p2.add(new Button("BUTTON"),BorderLayout.EAST);
    for(int i =1;i<=4;i++) {p21.add(new Button("BUTTON"));} 
    p2.add(p21,BorderLayout.CENTER);
    f.add(p1);
f.add(p2);
    f.setVisible(true);
  }
}

?

?

上一篇: SpaceX顺利发射台湾卫星 为何却赔了1000多万美元 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名