日志8.24:布局管理器

本来想昨晚把布局管理器复习完之后放到日志上,以为差不多可以掌握了,突然发现一开始写代码就各种不会,以至于写到现在才只能做出最简单的界面,所以说以后还是要多敲敲代码,巩固下所学的知识,任重道远啊!废话不多说,开始总结:


1.java界面开发主要步骤:继承JFrame——定义组件——创建组件——添加组件——设置窗体属性——显示窗体

2.java.awt类包中包含五种布局管理器:

1.流式布局管理器(FlowLayout):Pannel和Applet的缺省布局管理器;

2.边界布局管理器(BorderLayout):window、JDialog、Dialog、Frame、JFrame的缺省布局管理器;

3.网格布局管理器(GridLayout);

4.卡片布局管理器(CardLayout);

5.网格包布局管理器(GridBagLayout);

3.如果用户确实需要设置组件的大小和位置,则应取消该容器的布局管理器。方法为:setLayout(null);

4.FlowLayout布局方式是将组件一排一排地依次放置。它自动调用组件的getPrefferredSize()方法,使用组件的最佳尺寸来显示组件。当容器被重新设置大小后,则布局也会重新发生改变:各组件的大小不变,但相对位置会发生变化

5.FlowLayout有三种构造方法:

1.public FlowLayout()

使用缺省居中对齐方式。组件的水平和垂直间距为缺省值5个像素

2.public FlowLayout(int alignment)

使用指定的对齐方式。

3.public FlowLayout(int alignment,int horizontalGap,int verticalGap)

使用指定的对齐方式,水平和垂直间距为指定值。

6.BorderLayout布局使用了更加复杂的布局控制方法,它包括五个区域:NORTH、SOUTH、EAST、WEST、CENTER。当容器尺寸发生变化时,各组件的相对位置不变,但中间部分的尺寸会发生变化,南北组件的高度不变,东西组件的宽度不变。

7.BorderLayout类中有两种构造方法:

1.public BorderLayout()

各组件的水平和垂直间距为缺省值0个像素。

2.public BorderLayout(int horizontalGap,int verticalGap)

各组件的水平和垂直间距为指定像素。

8.如果容器中使用了BorderLayout布局方式,则用add()方法往容器添加组件时,要指明添加的位置,若无指明,则默认为"CENTER"方位。例:add (new Button(BorderLayout.WEST)。

9.每个区域只能添加一个组件,若添加多个组件,则只能显示一个。如果想在组件中添加多个组件。则必须在该区域内放置一个Pannel容器,再将多个组件放在该Pannel容器中。

10.GridLayout布局方式可以使容器中的各个组件呈网格状分布。容器中各组件的宽度和高度相同。当容器的尺寸发生变化时,各组件的相对位置不变,但各自的尺寸会发生变化。

11.GridLayout布局方式有三种构造方法:

1.public GridLayout()

在一行中放置所有的组件,各组件间的水平和垂直间距为0像素;

2.public GridLayout(int rows,int cols)

rows和cols可以有一个为0。若rows为0,则表示每行放置cols个组件,根据具体的组件,可以有任意多行;若cols为0,这表示共有rows行,根据具体的组件数,每行可以放任意多个组件;

3.public GridLayout(int rows,int cols,int horizontalGap,int verticalGap)

各组件的水平和垂直间距为指定值。

12.CardLayout可以帮助用户处理两个或更多的组件共享同意显示空间。只有最上面的组件是可见的。

13.CardLayout可以像换牌一样处理共享空间的组件:为每张牌定义一个名字,可按名字选牌;可以按顺序向前或向后翻牌;也可以直接选第一张或最后一张牌。使用方法如下:

public void show(Container parent,String name)

public void next(Container parent)

public void previous(Container parent)

public void first(Container parent)

public void last(Container parent)

其中Container是拥有该CardLayout布局管理器的容器

14.CardLayout有两种构造方法:

1.public CardLayout()

组件距容器的左右和上下边界的距离为缺省值0像素;

2.public CardLayout(int horizontalGap,int verticalGap)

组件距容器的左右和上下边界的距离为指定像素。

15.采用Layout布局方式时,向容器中添加组件时可以为组件取一个名字,以供更换显示组件时使用:add(String Component)。


总结的内容差不多了,但是具体组件的用法没有标出来,下面再写一些令我熬夜的代码吧,稍微复杂些的内容将在明天补充:


1.最简单的布局方式,如下图:


日志8.24:布局管理器_第1张图片

代码如下:

步骤:1.继承JFrame;2.定义组件;3.创建组件;4.添加组件;5.设置窗体属性;6.显示窗体。

import java.awt.*;

import javax.swing.*;

//继承JFrame

public class Demo extends JFrame

{

//定义组件

JPanel jp1,jp2;

JButton jbs[]=new JButton[6];

//创建构造函数

public Demo()

{

//创建组件

for(int i=0;i<6;i++)      //对象数组在定义数组后,需对数组成员重新定义

    jbs[i]=new JButton();

jp1=new JPanel();

jp2=new JPanel();

jbs[0]=new JButton("苹果");

jbs[1]=new JButton("西瓜");

jbs[2]=new JButton("狐狸");

jbs[3]=new JButton("葡萄");

jbs[4]=new JButton("樱桃");

jbs[5]=new JButton("荔枝");

//添加组件

jp1.add(jbs[0]);

jp1.add(jbs[1]);

jp2.add(jbs[2]);

jp2.add(jbs[3]);

jp2.add(jbs[4]);

//设置布局管理器

this.setLayout(new BorderLayout());     //经常出错,请记住

this.add(jp1,BorderLayout.NORTH);

this.add(jp2,BorderLayout.SOUTH);

this.add(jbs[5],BorderLayout.CENTER);

//设置窗体属性

this.setSize(300,200);

this.setLocation(40,40);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//显示窗体

this.setVisible(true);

}

//主函数

public static void main(String args[])

{

Demo demo=new Demo();

}

}


待续......(补充至下一篇)

你可能感兴趣的:(日志8.24:布局管理器)