1.要绘图,必须要自定义一个以Canvas为父类的类(例如名叫A类),并实现其固有的paint()方法。
2.repaint()为刷新画布的方法,当调用repaint()时,系统会自动调用位于A类中自定义的 paint()方法
3.画图通过java awt中的 Graphics类实现
例如:drawRect() 为绘制矩形,drawOval()为绘制椭圆形(也可以圆形),drawString()为绘制字符串,等等
例子,绘制矩形
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;
import java.util.Random;
public class DrawP {
Random rand = new Random();
Panel p = new Panel(); //Button要放在Panel上
Frame f = new Frame();
Button rect = new Button("矩形");
Mycanvas drawArea = new Mycanvas();
public void init()
{
rect.addActionListener(e->
{
drawArea.repaint();
});
drawArea.setPreferredSize(new Dimension(250,180));
p.add(rect);
f.add(p,BorderLayout.SOUTH);
f.add(drawArea);
f.pack();
f.setVisible(true);
}
/*必须自定义继承Canvas类的类,并重写继承自Canvas的paint()方法*/
class Mycanvas extends Canvas
{
//重写paint()方法,必须的,当调用repaint()时,会自动调用paint()
public void paint(Graphics g)
{
g.setColor(new Color(220,100,80)); // 设置画笔颜色
g.drawRect(rand.nextInt(250), rand.nextInt(180), 40, 50); //画矩形,XY坐标随机,长宽各为40,50
}
}
public static void main(String[] args)
{
new DrawP().init();
}
}