布局管理

AWT提供了五个常用的布局管理器,FlowLayout,BorderLayout,GridLayout,GridBigLayout,CardLayout

Swing还提供了一个BoxLayout布局管理器。

1.FlowLayout布局管理器

  在这个布局管理器中,组建像流水一样想某方向流动(排列),遇到障碍(边界)就折回,重头开始排列,默认情况,FlowLayout布局管理器从左向右排列所有组件,遇到边界就会折回iayihang重新开始。

package test1;



import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;



public class TestFlowLayout {

	public static void main(String[] args) {

		Frame f = new Frame("FlowLayout-Test");

		f.setLayout(new FlowLayout());



		for (int i = 0; i < 100; i++) {

			f.add(new Button("按钮" + i));

		}

		f.pack();

		f.setVisible(true);

		new TestListener().init();



	}

}

  结果:Fram中的按钮可以随着拖动窗体的大小而进行流水排列。

2.BorderLayout布局管理器

BorderLayout将容器分为EAST,SOUTH,WEST,NORTH,CENTER

 

                                                             NORTH

                                           WEST         CENTER      EAST

                                                             SOUTH

 

注意:

1.使用BorderLayout时,需要指定要添加到那个区域,如果没有指定的话,则默认添加到中间

2.如果向同一区域添加多个组建时,后放入的组建会覆盖前面的组件

3.BorderLayout();使用默认水平间距、垂直间距创建BorderLayout布局管理器

4.BorderLayout(Integerhgap,int vgap):使用指定的水平间距,垂直间距创建BorderLayout布局管理器

package test1;



import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextArea;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;



public class MultiListener {

	private Frame f = new Frame("测试");

	private TextArea ta = new TextArea(6, 40);

	private Button b1 = new Button("按钮一");

	private Button b2 = new Button("按钮二");



	public void init() {

		FristListener f1 = new FristListener();

		b1.addActionListener(f1);

		b1.addActionListener(new SecondListener());

		b2.addActionListener(f1);

		f.add(ta);

		Panel p = new Panel();

		p.add(b1);

		p.add(b2);

		f.add(p, BorderLayout.SOUTH);

		f.pack();

		f.setVisible(true);

	}



	class FristListener implements ActionListener {

		public void actionPerFormed(ActionEvent e) {

			ta.append("第一个事件监听器被出发,事件源是:" + e.getActionCommand() + "\n");

		}



		@Override

		public void actionPerformed(ActionEvent e) {

			// TODO Auto-generated method stub



		}

	}



	class SecondListener implements ActionListener {

		@Override

		public void actionPerformed(ActionEvent arg0) {

			// TODO Auto-generated method stub

			ta.append("");



		}



	}



	public static void main(String[] args) {

		new MultiListener().init();

	}

}

  

3.GridLayout布局管理器

  是将容器分割成纵横线分割的网格,每个网格所占的区域大小相同,当向使用GridLayout的同期中添加组件时,默认从左向右,总上向下添加到每个网格中,与FlowLayout不同的是,放在GrideLayout布局管理中的各组件的大小组件所处理的区域来决定。

每个组件将自动涨大到占满整个区域。

1.GridLayout(int rows,int cols):采用指定行数、列数、指定横向间距,纵向间距将容器分割成多个网格

2.GridLayout(Int rows,int cols,int hgap,int vgap):采用指定行数列数,指定横向间距,纵向间距将容器分割成多个网格

 

 

你可能感兴趣的:(管理)