package src;import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;import javax.swing.ImageIcon;
import javax.swing.JFrame;public class MainFrame extends JFrame implements Runnable { private BufferedImage bufferedImage;
private ImageIcon imgIcon;
private int imgH;
private int imgW; private  int point = imgH - 12;
private int init = 0;; public MainFrame() {
loadImage();
init();
} public static void main(String[] args) {
new MainFrame();
} public void init() {
setSize(imgW, imgH);
setLocation(200, 200);
setVisible(true);
new Thread(this).start();
} public void loadImage() { imgIcon = new ImageIcon(
MainFrame.class.getResource("images/background.jpg"));
imgH = imgIcon.getIconHeight();
imgW = imgIcon.getIconWidth();
bufferedImage = new BufferedImage(imgIcon.getIconWidth(),
imgIcon.getIconHeight(), BufferedImage.TYPE_3BYTE_BGR);
System.out.println(imgH+" "+imgW);
} public void paint(Graphics g) { backgroundMove();
g.drawImage(bufferedImage, 0, 0, this.getWidth(), this.getHeight(),
null);
} public void backgroundMove() {// 窗体背景移动 Graphics g = bufferedImage.getGraphics();
if (init == 0) {
g.drawImage(imgIcon.getImage(), 0, 0, imgIcon.getIconWidth(),
imgIcon.getIconHeight(), null);
init = 1;
}


g.drawImage(bufferedImage, 0, 12, imgW, 351, 0, 0, imgW, 351, null);//将bufferedImage上部分图像进行下移操作
g.drawImage(imgIcon.getImage(), 0, 0,imgW, 12,0, point, imgW,12, null);//将原图的指定区域 绘制到bufferedImage上部分中

System.out.println("y point:" + point);
point = point - 12;
if (point < 0) {
point = imgH - 12;
}
} public void run() { while (true) {
repaint();
try {
Thread.sleep(100);
} catch (InterruptedException e) { e.printStackTrace();
}
}
}}