AWT工具简单介绍

GUI图形界面编程

GUI的核心技术:Swing AWT;

GUI的限制:1、界面不美观 2、运行需要jre环境,资源太大

AWT抽象窗口工具


  1. AWT是一个创建界面的工具包,包含很多的接口和类
  2. 元素:包含窗口、按钮、文本框等

在这里插入图片描述

1.Frame

Frame 是窗口工具,设置应用总窗口;

// 创建窗口;
Frame fra = new Frame();
// 设置布局,java.awt中提供布局管理器,FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、CardLayout(卡片布局管理器)
fra.setLayout(null);
// 设置窗口位置和大小;
fra.setBounds(x,y,w,h); //x,y 代表电脑桌面位置坐标,w,h 设置窗口大小;
fra.serSize(w,h);// 设置窗口大小;
fra,setLocation(x,y); // 设置窗口打开位置;
fra.setBackground(Color x); // 设置窗口背景颜色;
fra.setVisible(true/false); // 设置窗口可见性;
//监听窗口关闭事件 system.exit(0)
frame.addWindowListener(new WindowAdapter(){
    //点击窗口关闭时做的事情
    public void windowClosing(WindowEvent e){
        System.exit(0);
    }
})
2.panel

  1. panel 可以看做是一个空间,但是不能单独存在;
  2. panel用来嵌套窗口,在frame窗口中做相关内容窗口;
Panel panel  = new Panel();
// 设置坐标
panel.setBounds(x,y,w,h);
panel.setBackground(new Color(r,g,b));
//向窗口中内嵌窗口
frame.add(panel);
3.常见布局方式

  1. 流式布局设置:frame.setLayout(new FlowLayout());//可以在内部设置左右居中等
  2. 东西南北中设置: frame.add(new Button(" ") , BorderLayout.WEST);
  3. 表格布局设置: frame.setLayout(new GridLayout(2,3));

布局方式嵌套通过panel面板工具作为容器,在上面增加新的布局,然后嵌套到frame中

4.事件监听

通过对文本、按钮等设置事件监听来获取相关信息,在java中,监听事件ActionListener属于接口,我们可以自己编辑监听类来实现该接口,并编制自己的功能;

//创建监听类实现接口
class MyActionListener implements ActionListener{
 	// 实现抽象方法
    @Override
	public void actionPerformed(ActionEvent e) {
    }   
}
// 创建监听事件,对按钮添加监听
MyActionListener ac = new MyActionListener();
Button button = new Button();
button.addActionListener(ac);
5.画笔paint

  1. 画笔调用通过实现Frame类里面的paint方法来实现
  2. 设置画笔时需要设置画笔的颜色
  3. 画笔使用完成后需要回复默认
@Override
public void paint(Graphics g){
    //设置画笔颜色
    g.setColor(Color.red);
    //使用画笔画圆
    g.drawOval(200,200,200,200);//定位x,y 长宽l , h
}
6.鼠标监听

鼠标监听事件: MouseListener(接口) ,开发中可以使用适配器模式(MouseAdapter),减少方法重写量

/*
 * 将鼠标当做画笔,监听产生的点,并将其画在画板上
 *	1.创建画板
 *	2.创建点的集合,来保存鼠标产生的所有点
 *	3.重写画笔方法,设置画笔颜色,以及画点,位置根据集合中存储的点的坐标来确认
 *	4.创建鼠标监听事件,监听鼠标每次点击产生的点,并将其放在集合中
 *	5.每次点击鼠标调用窗口的重画功能
 */
class MyFrame extends Frame{
	//声明点集合
	ArrayList point ;
	//创建画板
	public MyFrame(String title){
		super(title);
		point = new ArrayList();
		setBounds(200, 200, 800, 800);
		setVisible(true);
		this.addMouseListener(new MyMouseListener());
	}
	// 调用画笔
	@Override
	public void paint(Graphics g) {
		g.setColor(Color.red);
		//画集合中的点
		Iterator ite = point.listIterator();
		while(ite.hasNext()){
			Point pointer = (Point) ite.next();
			g.fillOval(pointer.x, pointer.y, 10, 10);
		}
	}
	// 创建鼠标监听事件
	class MyMouseListener extends MouseAdapter{
		//鼠标按下时调用
		@Override
		public void mousePressed(MouseEvent e) {
			point.add(e.getPoint());
			repaint();
		}
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值