代码
/*在画布上绘画*/
import java.awt.*;
import java.awt.event.*;//AvctrionListener,AvctionEvent
public class sample64 extends Frame
{
Button btn = new Button("退出");
sample64()
{
setTitle("Canvas的子类");
setVisible(true);
Panel pnl = new Panel();
pnl.setBackground(Color.blue);
add(pnl);
sample641 cvs = new sample641();
pnl.add(cvs);
pack();
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
setVisible(false);
System.exit(0);
}
});
}
public static void main(String args[])
{
sample64 smp = new sample64();
}
class sample641 extends Canvas
{
sample641()
{
setSize(150,120);
setBackground(Color.cyan);
}
public void paint(Graphics g)//绘制此 canvas。paint为一个自动调用的方法
{
g.setColor(Color.black);
g.drawString("黄色区域是画布",35,22);//后两位为坐标
g.drawString("可用鼠标拖动边框",30,39);
g.setColor(Color.pink);
g.fillRoundRect(25,50,100,50,20,20);//用当前颜色填充指定的圆角矩形。在画布上填充
}
}
}
解析
1.import两个包
import java.awt.;
这个包包含了Frame类
import java.awt.event.;//AvctrionListener,AvctionEvent
这个包包含了ActionListener和ActionEvent这两个类
2.public void paint(Graphics g)
这个方法自动调用,后面学到的Graphics2D类画图、Graphics类画图等各种画图均要用到。
3.区分draw和fill
Graphics 有两种画图,一种是fill,一种是draw。fill是填充一个图形的颜色,draw是画一个图形,内部没有颜色,边界颜色。