> 文章列表 > java Graphics2D 绘图常用方法和参数介绍说明

java Graphics2D 绘图常用方法和参数介绍说明

java Graphics2D 绘图常用方法和参数介绍说明

绘制基本形状

Java Graphics2D 提供了绘制基本形状的方法,包括绘制直线、矩形、圆形等等,例如:

g2.drawLine(x1, y1, x2, y2); // 绘制直线
g2.drawRect(x, y, width, height); // 绘制矩形
g2.drawOval(x, y, width, height); // 绘制椭圆
g2.drawArc(x, y, width, height, startAngle, arcAngle); // 绘制圆弧

其中,drawLine() 方法用于绘制直线,参数 x1y1 表示起点的坐标,x2y2 表示终点的坐标;drawRect() 方法用于绘制矩形,参数 xy 表示矩形左上角的坐标,widthheight 表示矩形的宽度和高度;drawOval() 方法用于绘制椭圆,参数含义同矩形;drawArc() 方法用于绘制圆弧,参数 startAngle 表示圆弧起始角度,arcAngle 表示圆弧跨越角度。

绘制复杂形状

除了绘制基本形状外,Java Graphics2D 还提供了绘制复杂形状的方法,例如绘制多边形

int[] xPoints = {x1, x2, x3, ...};
int[] yPoints = {y1, y2, y3, ...};
g2.drawPolygon(xPoints, yPoints, nPoints);

其中,xPointsyPoints 数组分别表示多边形各个顶点的 x 坐标和 y 坐标,nPoints 表示多边形的顶点个数。

绘制文本

Java Graphics2D 还提供了绘制文本的方法,例如:

Font font = new Font("宋体", Font.PLAIN, 12); // 创建字体对象
g2.setFont(font); // 设置字体
g2.drawString(text, x, y); // 绘制文本

其中,Font 类表示字体,可以通过 new Font() 或者 Font.getFont() 方法创建字体对象。drawString() 方法用于绘制文本,参数 text 表示要绘制的文本,xy 表示文本的起点坐标。

绘制图像

Java Graphics2D 还可以绘制图像,例如:

Image image = new ImageIcon("image.png").getImage(); // 创建图像对象
g2.drawImage(image, x, y, width, height, null); // 绘制图像

其中,Image 类表示图像,可以通过 ImageIcon 类来创建图像对象。drawImage() 方法用于绘制图像,参数 image 表示要绘制的图像对象,xy 表示图像左上角的坐标,widthheight 表示图像的宽度和高度,null 表示图像的观察者对象(一般情况下为 null)。

绘制渐变

Java Graphics2D 还可以绘制渐变,例如:

GradientPaint gradient = new GradientPaint(x1, y1, color1, x2, y2, color2); // 创建渐变对象
g2.setPaint(gradient); // 设置渐变
g2.fillRect(x, y, width, height); // 绘制矩形

其中,GradientPaint 类表示渐变,可以通过 new GradientPaint() 方法创建渐变对象。setPaint() 方法用于设置绘图颜色(包括渐变),参数 gradient 表示要设置的颜色。fillRect() 方法用于填充矩形,参数含义同上。

绘制图形样式

Java Graphics2D 还可以绘制图形样式,例如:

BasicStroke stroke = new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
g2.setStroke(stroke); // 设置线条样式
g2.drawLine(x1, y1, x2, y2); // 绘制直线

其中,BasicStroke 类表示线条样式,可以通过 new BasicStroke() 方法创建线条样式对象。setStroke() 方法用于设置绘图线条样式,参数 stroke 表示要设置的线条样式。这里使用的是圆形端点和连接处样式的线条样式。drawLine() 方法用于绘制直线,参数含义同上。

绘制透明度

Java Graphics2D 还可以绘制透明度,例如:

AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); // 创建透明度对象
g2.setComposite(alpha); // 设置透明度
g2.fillRect(x, y, width, height); // 绘制矩形

其中,AlphaComposite 类表示透明度,可以通过 AlphaComposite.getInstance() 方法创建透明度对象。setComposite() 方法用于设置绘图透明度,参数 alpha 表示要设置的透明度。fillRect() 方法用于填充矩形,参数含义同上。

绘制图像过滤器

Java Graphics2D 可以通过 ImageFilterImageProducer 接口实现图像过滤,例如:

ImageProducer producer = image.getSource();
ImageFilter filter = new GrayFilter(true, 50); // 创建图像过滤器
ImageProducer filteredProducer = new FilteredImageSource(producer, filter); // 过滤图像
Image filteredImage = Toolkit.getDefaultToolkit().createImage(filteredProducer); // 创建过滤后的图像
g2.drawImage(filteredImage, x, y, null); // 绘制过滤后的图像

其中,getSource() 方法用于获取图像的 ImageProducer 对象,GrayFilter 表示图像过滤器,可以通过 new GrayFilter() 方法创建。FilteredImageSource 用于将原始的 ImageProducer 对象和过滤器对象连接起来,生成过滤后的图像。createImage() 方法用于创建过滤后的图像对象。drawImage() 方法用于绘制图像,参数含义同上。

绘制多边形

Java Graphics2D 可以绘制多边形,例如:

int[] xPoints = {x1, x2, x3, x4};
int[] yPoints = {y1, y2, y3, y4};
Polygon polygon = new Polygon(xPoints, yPoints, 4); // 创建多边形
g2.drawPolygon(polygon); // 绘制多边形

其中,Polygon 类表示多边形,可以通过 new Polygon() 方法创建多边形对象。drawPolygon() 方法用于绘制多边形,参数 polygon 表示要绘制的多边形对象。