韩顺平老师的零基础学java的笔记总结。
一、java绘图坐标体系
1.java绘图坐标体系介绍
左标原点位于左上方,以像素为单位。水平为x坐标,代表距离坐标原点x个像素。垂直为y坐标,代表距离左标原点y个像素。
2.坐标体系-像素
1.800*600就是每行有800个像素,有600行。
2.像素是密度单位。每行像素多,显示的图像信息就多,每个像素显示的图像就有点小。像素少,显示的图像信息就比较大。
3.像素是密度单位,不能与长度单位相比较。
3.java绘图技术的引入
(1)先定义一个任意类MyPanel,继承JPanel类,画图像就在画板上画。
class MyPanel extends JPanel {
@Override
public void paint(Graphics g) {//绘画方法,g是画笔,有画画的相关方法
super.paint(g);//调用父类方法完成初始化
g.drawOver(10,10,100,100);//画一个圆。
}
}
(2)在主类中继承JFrame类,把画板对象添加到这个框架当中去。
public class DrawCircle extends JFrame {//JFrame窗口,对应画框
//画板
private MyPanel mp = null;
public static void main(String[] args) {
new DrawCircle();
}
public DrawCircle() {
//初始化面板
mp = new MyPanel();
this.add(mp);//将画布加到画框中。
this.setSize(400, 300);//设置窗口大小 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置关闭画框时退出程序。
this.setVisible(true);//设置是否可以显示
}
}
JPanel是一个画板
Graphics g 是画笔
Graphics里面有很多绘图的方法,通过g调用。
JFrame是一个框架,相等与一个画框。
即JFrame是一个画框(窗口),可以调节大小等。
JPanel是一个画布,可以在上面画画。通过paint方法。
Graphics的对象就是一个画笔,具体画画的方法就通过这个实现。
(3)paint方法的调用情况
Component类提供了两个绘图最重要的方法:paint和repaint.
1.paint(Graphics g)绘制组件的外观。
2.repaint()刷新组件的外观。
1.组件第一次在屏幕显示时,系统自动调用paint()方法绘制组件。
2.窗口大小变化,或最小最大化时。
3.repaint()函数被调用时。
二、Graphics类
Graphics类(画笔)为绘制各种图像提供了很多方法。
public void paint(Graphics g) {//绘画方法,g是画笔,有画画的相关方法
super.paint(g);//调用父类方法完成初始化
//画圆
// System.out.println("我要画画");
g.drawOval(10, 10, 120, 120);
//1.画直线drawLine()
g.drawLine(10,10,234,234);
//2.画矩形边框drawRect()
g.drawRect(20,20,50,50);
//3.画椭圆边框drawOvar
g.drawOval(10,10,20,30);
//4.填充矩形fillRect(),设置画笔颜色
g.setColor(Color.blue);
g.fillRect(10,10,100,100);
//5.填充椭圆fillOval()
g.setColor(Color.BLACK);
g.fillOval(10,10,100,120)
//6.画图片,drawImage(img,x,y);x,y:位置。再后面两个图片的真实宽高。
//6.1.获取图片资源
Image image= Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bg.png"));
g.drawImage(image,10,10,175,221,this);
//7.设置画笔的颜色setColor和字体SetFont()
g.setColor(Color.cyan);
g.setFont(new Font("楷书",Font.BOLD,50));
//8.写字符串(汉字)
g.drawString("我欲踏云千万里",40,40);
}
其中获取图片资源时,图片路径为: