Java绘图

目录

1. Java绘图坐标体系

1.1 坐标体系介绍

1.2 像素介绍

2. Java绘图技术

2.1 绘图原理

2.2 绘图基础练习——画圆

2.3 Graphics类 常用方法


1. Java绘图坐标体系

1.1 坐标体系介绍

坐标原点位于左上角,以 像素 为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。

1.2 像素介绍

绘图必须要知道一个非常重要的概念:一个像素的长度是多少?

计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800x600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。像素是一个密度单位,而厘米是长度单位,两者无法比较。

同一块大小的屏幕上,像素越多,像素点越小,显示的图像就越多;像素越少,像素点越大,显示的图像就越少。

2. Java绘图技术

2.1 绘图原理

(1)Component类提供了两个和绘图相关最重要的方法:

①paint(Graphics g) 绘制组件的外观

②repaint() 刷新组件的外观

(2)当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件。在以下情况paint()将会被调用:

①当组件第一次在屏幕显示时

②窗口最小化,再最大化

③窗口的大小发生变化

④repaint()方法被调用

2.2 绘图基础练习——画圆

(1)先定义一个MyPanel类,继承JPanel类。

MyPanel对象 就是一个画板;Graphics g 是把g作为一支画笔。

Graphics 提供了很多绘图方法,drawOval()方法用来画圆。

(注:一个图形的x、y坐标,是指的图形左上角的坐标,如果图形不是矩形,会按补全为矩形后的图形来计算,例如圆形会补全为正方形)

(2)主类DrawCircle继承JFrame类,并定义一个MyPanel画板。JFrame对应窗口,可以理解为一个画框。

(3)在主类DrawCircle中定义一个无参构造器,初始化面板,使用add()方法把面板放入窗口(画框),使用setSize()方法设置窗口大小,使用setVisible()方法设置窗口可以显示。

使用setDefaultCloseOperation()方法,设置JFrame.EXIT_ON_CLOSE参数,当点击窗口的关闭键,退出程序。

(4)在主类DrawCircle中,创建DrawCircle对象,调用构造器

(5)运行结果

2.3 Graphics类 常用方法

Graphics类可以理解为一支画笔,为我们提供了各种绘制图形的方法:

(1)画直线 drawLine(int x1, int y1, int x2, int y2)

(2)画矩形边框 drawRect(int x, int y, int width, int height)

(3)画椭圆边框 drawOval(int x, int y, int width, int height)

(4)设置画笔的颜色 setColor(Color c)

(5)填充矩形 fillRect(int x, int y, int width, int height)

(6)填充3D矩形 fill3DRect(int x, int y, int width, int height, boolean raised)

画出一个填充有当前颜色的3D高亮矩形

(7)填充椭圆 fillOval(int x, int y, int width, int height)

(8)画图片 drawImage(Image img, int x,int y, …)

①需要先把图片资源放入到和.idea同级的out文件中 production下一级的文件中,即 当前项目的根目录

②获取根目录下的图片资源(这里语句太长不好展示,进行了换行)。Toolkit.getDefaultToolkit().getImage是固定的写法,不用深究;后面括号的内容是获取图片资源,“/”表示根目录。

③画图片:先放入获取的图片资源image,x和y是图片左上角的点,width和height设置图片的宽和高,最好是设置图片原本的像素大小,不然图片会变形。最后加上this,表示在当前的位置/当前的对象画出图片。

(9)设置画笔的字体 setFont(Font font)

(10)画字符串 drawString(String str, int x, int y)

画字符串 就是在画板上写字。

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值