Java AWT Adapter 练习代码

Java绘图与事件处理
本文介绍了使用Java进行基本绘图操作的方法,并展示了如何通过监听鼠标事件来动态更新画面元素,同时探讨了如何更改按钮标签以实现动态交互。
//small test

import java.awt.*;

class Test{
	public static void main(String[] args){
		new PaintFrame().launchFrame();
	}	
}

class PaintFrame extends Frame{
	public void launchFrame(){
		setBounds(200,200,640,480);
		setVisible(true);	
	}	
	
	public void paint(Graphics g){
		Color c=g.getColor();
		g.setColor(Color.RED);
		g.fillOval(50,50,30,30);
		g.setColor(Color.GREEN);
		g.fillRect(80,80,40,40);
		g.setColor(c);	
	}
}
//draw test

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


class Test{
	public static void main(String[] args){
		new MyFrame("Drawing...");
	}	
}

class MyFrame extends Frame{
	ArrayList<Point> points=null;
	Point curPoint=null;
	int numPoint=0;
	
	MyFrame(String s){
		super(s);	
		points=new ArrayList<Point>();
		setLayout(null);
		setBounds(300,300,400,300);
		this.setBackground(Color.GRAY);
		setVisible(true);
		this.addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
				System.out.println("curPointNumber is " + ++numPoint);
				curPoint=new Point(e.getX(),e.getY());
				points.add(curPoint);
				repaint();
			}
		});
	}
	
	/*public void paint(Graphics g){
		Color c=g.getColor();
		g.setColor(Color.GREEN);
		for(Iterator<Point>it=points.iterator();it.hasNext();){
			Point p=it.next();
			g.fillOval(p.x,p.y,10,10);	
		}
		g.setColor(c);	
	}*/
	public void paint(Graphics g){
		Color c=g.getColor();
		g.setColor(Color.GREEN);
		ArrayList<Point> tempPoints=new ArrayList<Point>();
		for(Iterator<Point>it=points.iterator();it.hasNext();){
			Point p=it.next();
			//g.fillOval(p.x,p.y,10,10);
			g.drawLine(p.x,p.y,curPoint.x,curPoint.y);
			tempPoints.add(p);
			for(Iterator<Point> tempIt=tempPoints.iterator();tempIt.hasNext();){
				Point tempP=tempIt.next();
				g.drawLine(tempP.x,tempP.y,p.x,p.y);	
			}	
		}
		g.setColor(c);	
	}
}

//窗口关闭事件
import java.awt.*;
import java.awt.event.*;
import java.util.*;


class Test{
	public static void main(String[] args){
		new MyFrame("Drawing...");
	}	
}

class MyFrame extends Frame{
	
	MyFrame(String s){
		super(s);	
		setLayout(null);
		setBounds(300,300,400,300);
		this.setBackground(Color.GRAY);
		setVisible(true);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				setVisible(false);
				System.exit(0);	
			}
		});
	}
}

//动态改变Button的label
import java.awt.*;
import java.awt.event.*;
import java.util.*;


class Test{
	public static void main(String[] args){
		new MyFrame("Drawing...");
	}	
}

class MyFrame extends Frame{
	private int num=0;
	MyFrame(String s){
		super(s);	
		setBounds(300,300,400,300);
		this.setBackground(Color.GRAY);
		final Button b=new Button("NUM:"+num);
		this.add(b,BorderLayout.WEST);
		Button add=new Button("ADD");
		add.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				b.setLabel("NUM:"+ ++num);
			}	
		});
		this.add(add,BorderLayout.CENTER);
		setVisible(true);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				setVisible(false);
				System.exit(0);	
			}
		});
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值