AWT(抽象窗口工具包)是JAVA提供的建立图形用户界面GUI的开发包,可用于JAVA的AppletApplication
——————————————

组件,容器,布局管理器

JAVA.awt包

JAVA.awt包提供了设计GUI使用的类和接口

组件(Component)

组件是java图形用户界面最基本的组成部分,可与用户交互,如一个按钮,标签
注意:必须将组件放到容器中才能显示出来
java.awt.Component是众多组件类的父类,也封装了很多组件通用的方法和属性,如
图形的组件对象,大小,显示位置,前景色等等,一些重要的成员方法如下:

getComponentAt(intx,inty);        //获得坐标(x,y)上的组件对象
getFont();                        //获得组件字体
getName();						  //获得组件的名字
getSize();                        //获得组件大小
paint(Graphics);                  //绘制组件
repaint();                        //重新绘制组件    
update();                         //刷新组件
setVisible(Boolean b);           //设置组件是否可见
setSize(Dimension d);             //设置组件大小
setName(String name);             //设置组件名称

容器(Container)

java.awt.Container是Component的子类
一个容器可容纳多个组件,并使它们成为一个整体,所有组件都可通过==add();==方法加入容器中。常用容器如下:

窗口(Frame)
import java.awt.*;

public class FirstFrame extends Frame{
	public static void main(String args[]) {
		FirstFrame f = new FirstFrame("helloWorld");   //创建对象
		f.setSize(240, 240);                           //窗口大小
		f.setBackground(Color.blue);                   //窗口背景
		f.setVisible(true);                            //设置窗口是否可见,默认不可见
	}
	public FirstFrame (String str) {
		super(str);                                    //构造器,传入窗口标题
	}
	
}

在这里插入图片描述

面板(Panel)

像一块透明的玻璃,但不同于窗口,必须将面板引入别的容器中方可使用

import java.awt.*;

public class PanelInFrame extends Frame{
	public static void main(String args[]) {
		PanelInFrame p = new PanelInFrame("helloWorld");
		Panel pan = new Panel();                      //添加面板
		p.setSize(500, 500);
		p.setBackground(Color.darkGray);
		p.setLayout(null);
		pan.setSize(200,200);
		pan.setBackground(Color.gray);
		p.add(pan);                                  //biubiubiu
		p.setVisible(true);
	}
	
	public PanelInFrame(String a) {
		super(a);
	}
}

在这里插入图片描述

布局管理器

管理组件的排列顺序,大小,位置等

FlowLayout

Panel和Apple的默认布局管理器
规律:从上到下,从左到右依次摆放控件

BorderLayout

Window,Frame,Dialog的默认管理器
规律:将容器分为五个部分,North,Sorth,East,Center,每个空间只能摆放一个控件
在这里插入图片描述

GridLayout

规律:使容器中的组件呈网格布局,平均占据容器空间

CardLayout

规律:帮助用户处理两个及以上的成员共享一个空间(可以理解为点击一个按钮后显示另一个页面)
常用构造方法:

CardLayout();
CardLayout(int hgap,int vgap);

常用方法:

Frist(Container parent);                 //显示第一张卡片
last(Container parent);                  //显示最后一张卡片
next(Container parent);                  //显示下一张卡片
previous(Container parent);              //显示上一张卡片
show(Container parent,String name);      //显示指定名称的卡片

操作实例:

import java.awt.*;
import java.awt.event.*;

public class Card implements ActionListener{
	private Panel p1,p2,p3;                          //面板
	private Frame f;                                 //窗口
	private Button b1,b2,b3;
	private CardLayout CL = new CardLayout();
	public void create() {
		b1 = new Button("你是谁?");                  //新建三个按钮
		b2 = new Button("你想干啥");
		b3 = new Button("你瞅啥");
		p1 = new Panel();                            //新建三个面板
		p2 = new Panel();
		p3 = new Panel();
		f  = new Frame("嘿,那小孩");                 //新建一个窗口
		p1.add(b1);                                  //把按钮放到面板中
		b1.addActionListener(this);                  //为按键注册监听器
		p2.add(b2);
		b2.addActionListener(this);
		p3.add(b3);
		b3.addActionListener(this);
		f.setLayout(CL);
		f.add(p1,"first");
		f.add(p2,"second");
		f.add(p3,"next");
		f.setSize(500,500);                         //设置窗口大小
		f.setVisible(true);                         //窗口是否可见
	}
	public static void main(String[] args) {
		Card C = new Card();
		C.create();
	}
	@Override
	public void actionPerformed(ActionEvent arg0) {   //点击按键时跳转到下一个页面
		// TODO Auto-generated method stub
		CL.next(f);
		
	}

}

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐