作者tomap41017 (絕夢)
看板b98902HW
標題[JAVA] 分享:地圖太大張怎辦?用拖的
時間Mon Jun 21 00:39:04 2010
直接貼程式碼XD
小弟資質駑鈍試了幾個小時才成功= =
我的期末考阿......
-------------------------------------------
/**
*
*/
package poomonopoly;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
/**
*
*/
public class ImagePanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private BufferedImage image = null;
private int X, Y;
private class MD extends MouseAdapter {
int initX, initY;
@Override
public void mousePressed(MouseEvent me) {
initX = me.getX();
initY = me.getY();
}
@Override
public void mouseReleased(MouseEvent me) {
int finalX, finalY;
finalX = me.getX();
finalY = me.getY();
X += (finalX - initX);
Y += (finalY - initY);
repaint();
}
};
public ImagePanel() {
try {
image = ImageIO.read(new File("map.jpg"));
}
catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
X = -image.getWidth() / 2;
Y = -image.getHeight() / 2;//先初始在中央
this.addMouseListener(new MD());
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, X, Y, this);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.240.39
1F:→ zenixls2:建議用MouseMotionListener實作,效果比較好 06/21 02:51
2F:→ zenixls2:還有,記的測邊界 06/21 02:51
3F:→ tomap41017:之前是用一樓去做,可能那時我寫的有BUG我就換成現在的 06/21 18:18
4F:→ tomap41017:版本,至於邊界嘛XD再看看好了期末炸光= = 06/21 18:19
5F:推 ArInbl:在Main要怎麼用這個 06/26 22:51
6F:→ ArInbl: ImagePanel ? 06/26 22:51