java在图形组件上显示图片的一部分

如图要将该道具图的第一个道具在JFrame上显示


bonus.bmp

效果如图


import java.awt.Graphics;

import java.awt.Image;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class TestFrame extends JFrame {

    public TestFrame() {

        MyJPanel mp = new MyJPanel();

        add(mp);

        setTitle("画图");

        setDefaultCloseOperation(EXIT_ON_CLOSE);

        setBounds(300, 200, 300, 300);

        setVisible(true);

    }

    public static void main(String[] args) {

        new TestFrame();

    }

    class MyJPanel extends JPanel {

        public void paint(Graphics g) {

            super.paint(g);

            Image img;

try {

img = ImageIO.read(new File("images/bonus.bmp"));  //将图片加载进来

g.drawImage(img, 0, 0, 30, 28, 0, 0, 30, 28, this);  //将图片的一部分显示在frame上

} catch (IOException e) {

e.printStackTrace();

}

        }

    }

}

这段代码将images文件夹下的bonus.bmp的一部分显示到组件frame中

drawImage()有十个参数,

public abstract boolean drawImage​(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,ImageObserver observer)

img- 要绘制的指定图像。如果img为空,则此方法不起作用。

dx1- 目标矩形的第一个角的x坐标。

dy1- 目标矩形的第一个角的y坐标。

dx2- 目标矩形的第二个角的x坐标。

dy2- 目标矩形的第二个角的y坐标。

sx1- 源矩形的第一个角的x坐标。

sy1- 源矩形的第一个角的y坐标。

sx2- 源矩形的第二个角的x坐标。

sy2- 源矩形的第二个角的y坐标。

observer- 通过缩放和转换更多的图像来通知对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java图像处理干货篇 绘制图像 绘制图像主要用到的是Graphics类中drawImage方法,当然Graphi...
    爱撒谎的男孩阅读 6,714评论 1 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 我想像你的手肯定是冰凉的 像这凉如水的夜 潮湿冰冷的风 我拾起海边裸露光滑的石头 月光下感觉到了你的手 远方紫色的...
    城市里的猪阅读 838评论 0 2
  • 2018-01-20 原文:爱尔兰地区流行一种不知名的植物病,这种病传染性极强,马铃薯无论是长在田里还是贮藏在仓库...
    请叫我四爷阅读 340评论 0 1
  • 好书不厌百回读,《王晓春给青年教师的100条建议》字字珠玑,句句精华,细细读来有太多值得去深思的地方。读到...
    吾予了阅读 2,299评论 0 0