西直门网站建设公司,杭州网站建设派迪网络,五易网络,张家港高端网站制作一#xff0c;Java绘图类
19.1.1Graphics类
Graphics类是所有图形上下文的抽象基类#xff0c;它允许应用程序在组件以及闭屏图像上进行绘制。
可实现直线#xff0c;矩形#xff0c;多边形#xff0c;椭圆#xff0c;圆弧等形状和文本#xff0c;图片的绘制制作。
…
一Java绘图类
19.1.1Graphics类
Graphics类是所有图形上下文的抽象基类它允许应用程序在组件以及闭屏图像上进行绘制。
可实现直线矩形多边形椭圆圆弧等形状和文本图片的绘制制作。
19.1.2Graphics2D类
无法改变线条的粗细不能对图片使用旋转和模糊等过滤效果。Graphics2D是Graphics的扩展。 二.绘制图形
19.1绘制奥运五环 19,2绘制空心圆和实心的集合图形 三.绘图颜色与画笔属性
1.设置颜色
1.使用Color类可以创建任意颜色的对象不用担心平台是否支持该颜色因为Java以跨平台与硬件无关的方式支持颜色管理。
Color col newColorint rint gint b
Color col newColorint rgb 2.绘图类 可以使用setColor方法设置当前颜色。
setColorColor color 2.设置画笔
1.默认情况下Graphics类使用画笔属性是粗细为1个像素的正方形而Graphics2D类可以调用setStroke方法设置画笔的属性如改变线条的粗细虚实定义线段端点的形状风格等。 四.绘制文本
1.设置字体
1.Java使用Font类封装了字体的大小样式等属性该类在java.awt包含定义其构造方法可以指定字体的名称大小和样式3个属性。
FontString nameint styleint size
2.显示文字 1.Graphics2D类类提供了drawString方法使用该方法可以实现图形上下文的文本绘制从而实现在图片上显示文字功能。
drawString(String str,int x,int y)
drawString(String str,float x,float y)
19.3绘制文字钟表 19.5显示图片
显示照片语法
drawimage(Image img,int x,int y,ImageObserver observer) 19.4在窗体显示照片
this重新绘制的时候所要通知的对象
img传入的照片 19.6图像处理
19.6.1放大与缩小 语法
drawImage(Image img,int x,int y,int weight,int height,ImageObserver observer) 19.5通过滑动条改变图片大小 19.6.2图像旋转
另一种重载方法 语法
drawImage(Image img,int dx1,int dy1,int dx2,int dy2,int sx1,int sy1,int sx2,int sy2,ImageObserver observer) 19.6翻转照片 import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.imageio.ImageIO;public class PartImage extends JFrame {private Image img;private int dx1, dy1, dx2, dy2;private int sx1, sy1, sx2, sy2;private int width 300, height 200;// 图片宽高private JButton vBtn null;// 垂直翻转按钮private JButton hBtn null;// 水平翻转按钮private CanvasPanel canvasPanel null;public PartImage() {try {img ImageIO.read(new File(src/cow.jpg));// 读取图片文件} catch (IOException e) {e.printStackTrace();}dx2 sx2 width; // 初始化图像大小dy2 sy2 height;vBtn new JButton(垂直翻转);hBtn new JButton(水平翻转);JPanel bottom new JPanel();bottom.add(hBtn);bottom.add(vBtn);Container c getContentPane();c.add(bottom, BorderLayout.SOUTH);canvasPanel new CanvasPanel();c.add(canvasPanel, BorderLayout.CENTER);addListener();setBounds(100, 100, 300, 260); // 设置窗体大小和位置setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭模式setTitle(图片翻转); // 设置窗体标题}private void addListener() {vBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {sy1 Math.abs(sy1 - height);// 纵坐标互换sy2 Math.abs(sy2 - height);canvasPanel.repaint();}});hBtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {sx1 Math.abs(sx1 - width);// 横坐标互换sx2 Math.abs(sx2 - width);canvasPanel.repaint();}});}class CanvasPanel extends JPanel {public void paint(Graphics g) {g.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, this);// 绘制指定大小的图片}}public static void main(String[] args) {new PartImage().setVisible(true);}
} 19.6.3图像旋转
语法
rotate(double theta)
theta:指旋转的弧度
注传入参数只能是弧度
19.7让照片围绕左上角点旋转 19.6.4图像倾斜
语法
sheardouble shx,double shy)
shx: 水平方向的倾斜量 shy:垂直方向的倾斜量
19.8让照片变成向做倾斜的平行四边形现状