作者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