JAVA的画图(二),仅个人观点

本文介绍了一个使用Java进行图像处理的示例程序,演示了如何在画布上绘制图片、文字、线条、矩形和圆弧等元素。通过该示例,读者可以了解Java图形编程的基本流程和技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class MyDrawString extends JFrame {
    /**

     * @author 张永志 1279938986@qq.com

    *自己将java画图分两种模式 1、直接在paint(Graphics g)方法中绘制 2、在paint(Graphics

     * g)方法中调用g.drawImage(image, 0, 0, this)语句
     * 这里this当做观察类存在,当g的图片发生更改时调用this的imageUpdate()方法
     */
    Image img = null;
    Graphics g = null;
    final int width = 400;
    final int height = 300;

    public static void main(String[] args) {
        MyDrawString mds = new MyDrawString();
        mds.draw();

    }

    /**
     *
     */
    public MyDrawString() {
        setSize(width, height);
        setVisible(true);

        draw();
    }

    void draw() {
        // 创建画布,设置画布的宽高及类型
        img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        // 创建绘图的基类(创建绘图的笔)
        g = img.getGraphics();
        // 设置画笔颜色为白色
        g.setColor(Color.white);
        // 填充整个画布,等于将背景色设置为白色
        g.fillRect(0, 0, width, height);
        // 画图片
        Graphics2D g2d = (Graphics2D) g.create();
        // 从本地读取一张图片
        String filepath = "abcd/demo.jpg";
        Image image = Toolkit.getDefaultToolkit().getImage(filepath);
        // 绘制图片(如果宽高传的不是图片原本的宽高, 则图片将会适当缩放绘制)
        g2d.drawImage(image, 50, 50, image.getWidth(this), image.getHeight(this), this);
        g2d.dispose();

        // 修改画笔颜色
        g.setColor(Color.RED);
        // 画文字
        g.drawString("myString", 200, 200);
        // 画框
        g.drawRect(20, 50, width / 2, height / 2);
        // 画圆弧
        g.drawArc(100, 100, 100, 100, 0, -180);
        // 画线
        g.drawLine(100, 100, 200, 200);
    }

    /**
     * 此写法为套路写法
     */
    @Override
    public void paint(Graphics g) {
        if (img != null) {
            g.drawImage(img, 0, 0, this);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值