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在图形组件上显示图片的一部分)