如图要将该道具图的第一个道具在JFrame上显示
效果如图
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- 通过缩放和转换更多的图像来通知对象。