定义一个MyPanel类(面板),继承JPanel类。
画笔对象调用各种绘图方法。
//1.定义一个MyPanel类(面板),继承JPanel类
class MyPanel extends JPanel{
//绘图方法
/*
MyPanel 画板
Graphics g 画笔,提供了很多绘图的方法
*/
@Override
public void paint(Graphics g) {
super.paint(g); //调用父类方法,完成初始化
//画一个圆形
g.drawOval(10,10,100,100);
//绘图方法
g.drawLine(10,10,100,100); //直线
g.drawRect(100,100,30,20); //矩形边框
//设置颜色
g.setColor(Color.BLUE);
g.fillOval(150,150,50,30); //填充椭圆
//插入图片
//1.加载图片资源
Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/ps.jpg"));
g.drawImage(image,100,10,170,240,this);
//字符串
g.setColor(Color.BLACK);
g.setFont(new Font("隶书",Font.BOLD,50));
g.drawString("这是一张证件照。",10,300);
}
}
继承JFrame类,对应一个窗口,将面板添加到窗口。
/**
* 在面板上画出不同图形
*/
public class DrawCircle extends JFrame{ //继承JFrame类,对应一个窗口
//定义一个空面板
private MyPanel myPanel = null;
public static void main(String[] args) {
new DrawCircle();
}
//构造器
public DrawCircle(){
//初始化面板
myPanel = new MyPanel();
//把面板放入窗口
this.add(myPanel);
//设置窗口大小
this.setSize(800,500);
this.setVisible(true); //可显示
//关闭窗口后自动退出程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}