19.java绘图
A.Graphics类
? ?Graphics
类是java.awt
包中的一个类,它用于在图形用户界面(GUI)或其他图形应用程序中进行绘制。该类通常与Component
的paint
方法一起使用,以在组件上进行绘制操作。
????????一些Graphics
类的常见用法和方法:
在组件上绘制图形:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 绘制矩形
g.drawRect(50, 50, 100, 100);
// 绘制填充的矩形
g.setColor(Color.BLUE);
g.fillRect(200, 50, 100, 100);
}
}
public class MyFrame extends JFrame {
public MyFrame() {
add(new MyPanel());
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}
B.Graphics2D类
? Graphics2D
类是Java中java.awt
包中的一个类,它是Graphics
类的子类,提供了更丰富和高级的图形绘制功能。Graphics2D
类支持矢量图形和更高级的绘图操作,与Graphics
相比,它提供了更多的控制选项和更丰富的功能。
??Graphics2D
类的一些常见用法
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 将Graphics对象转换为Graphics2D对象
Graphics2D g2d = (Graphics2D) g;
// 绘制直线
g2d.drawLine(50, 50, 150, 150);
// 绘制圆形
g2d.setColor(Color.RED);
g2d.drawOval(200, 50, 100, 100);
}
}
public class MyFrame extends JFrame {
public MyFrame() {
add(new MyPanel());
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}
C.绘制一个图像
????????可以使用Graphics
或Graphics2D
对象来绘制图像
D.绘制一个图形
例题1
例题2
绘制颜色与画笔属性
????????以使用Graphics
或Graphics2D
对象来绘制颜色和定义画笔属性
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
class ColorAndStrokePanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// 将Graphics对象转换为Graphics2D对象
Graphics2D g2d = (Graphics2D) g;
// 设置颜色
g2d.setColor(Color.BLUE);
// 绘制填充的矩形
g2d.fillRect(20, 20, 80, 80);
// 设置颜色
g2d.setColor(Color.RED);
// 设置画笔宽度
g2d.setStroke(new BasicStroke(5));
// 绘制矩形边框
g2d.drawRect(120, 20, 80, 80);
}
}
public class ColorAndStrokeExample extends JFrame {
public ColorAndStrokeExample() {
add(new ColorAndStrokePanel());
setSize(250, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new ColorAndStrokeExample();
}
}
设置颜色
使用 Color 类可以创建任意颜色的对象,不用担心平台是否支持该颜色,因为 Java 以跨平台和与硬件无关的方式支持颜色管理。创建 Color 对象的构造方法有如下两种:
Color col = new Color(int r, int g, int b)
Color col = new Color(int rgb)
设置画笔
Color
类提供了一组预定义的颜色常量,
这些预定义的颜色常量包括但不限于:
Color.RED
Color.GREEN
Color.BLUE
Color.YELLOW
Color.ORANGE
Color.PINK
Color.CYAN
Color.MAGENTA
Color.BLACK
Color.WHITE
Color.GRAY
Color.LIGHT_GRAY
Color.DARK_GRAY
绘制文本
Java绘图类也可以用来绘制文本内容,且可以在绘制设置字体的样式、大小等。
设置字体
????????可以使用Font
类来设置字体的样式、大小和其他属性
Font
类的构造函数接受三个参数:字体名称("Arial")、字体样式(Font.PLAIN
、Font.BOLD
、Font.ITALIC
、或它们的组合)、以及字体大小。- 使用
g2d.setFont(font)
方法来设置当前绘图上下文的字体。 g2d.drawString(text, x, y)
方法用于在指定位置绘制文本。
E.显示文字
例题3
F.显示图片
drawimage(lmage img, int x, int y, lmageObserver observer)
????????绘图类不仅可以绘制图形和文本,还可以使用 drawImage0方法将图片资源显示到绘图上下文中,而且可以实现各种特效处理,如图片的缩放、翻转等。有关图像处理的知识将在 19.6 节讲解,本节主要讲解如何显示图片。
例题4
G.图像处理
????????开发高级的桌面应用程序,必须掌握一些图像处理与动画制作的技术,如在程序中显示统计图,销售趋势图、动态按钮等
放大与缩小
drawmage(lmage img, int x, int y, int width, int height, lmageObserver observer)
使用了 drawImage0方法将图片以原始大小显示在窗体中,要想实现图的放大与缩小,则需要使用它的重载方法。
例题5
图像翻转
????????水平垂直翻转
图像旋转
????????图像旋转
????????theta 是指旋转的弧度
说明rotate0方法只接受旋转的弧度作为参数,可以使用 Math 类的 toRadians0)方法将角度转换为弧toRadians(方法接受角度值作为参数,返回值是转换完毕的孤度值。
rotate(double theta)
????????需要调用 Graphics2D 类的 rotate0方法,该方法将根据指定的弧度旋转图像。
图像的翻转
需要使用 drawImage0方法的另一个重载方法。
drawimage(lmage img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, lmageObserver observer
图像倾斜
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!