看板 b98902HW 關於我們 聯絡資訊
直接貼程式碼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
zenixls2:建議用MouseMotionListener實作,效果比較好 06/21 02:51
zenixls2:還有,記的測邊界 06/21 02:51
tomap41017:之前是用一樓去做,可能那時我寫的有BUG我就換成現在的 06/21 18:18
tomap41017:版本,至於邊界嘛XD再看看好了期末炸光= = 06/21 18:19
ArInbl:在Main要怎麼用這個 06/26 22:51
ArInbl: ImagePanel ? 06/26 22:51