java让图片水平移动,就是不断监听图片的位置,示例如下:
//给个实例import java.awt.Color
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import java.awt.event.MouseMotionListener
import java.net.URL
import javax.swing.BorderFactory
import javax.swing.Icon
import javax.swing.ImageIcon
import javax.swing.JFrame
import javax.swing.JLabel
public class ImageMove {
static int x,y
public static void main(String[] args) throws Exception{
JFrame f = new JFrame()
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
f.getContentPane().setLayout(null)//这个要设置成 null
//图标
Icon icon = new ImageIcon(new URL("https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/logo-zhidao.gif"))
// Icon icon = new ImageIcon("c:/logo-zhidao.gif")//本地图片文件
JLabel l = new JLabel(icon)
l.setSize(icon.getIconWidth(),icon.getIconHeight()) l.setBorder(BorderFactory.createLineBorder(Color.red))
f.getContentPane().add(l) f.setVisible(true)
l.addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e){ x=e.getX()y=e.getY() } })
l.addMouseMotionListener(new MouseMotionListener(){ public void mouseDragged(MouseEvent e) { JLabel l = (JLabel)e.getSource()
l.setLocation(l.getX()+e.getX()-x,l.getY()+e.getY()-y)
}
public void mouseMoved(MouseEvent e) {} }) } }
这个只是实现了移动,你参考以下吧 !public class MoveImage {
static int x,y
private static int num=0
private static Icon icon=null
public static void main(String[] args) throws Exception{
JFrame f = new JFrame()
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
f.getContentPane().setLayout(null)//这个要设置成 null
//图片
icon = new ImageIcon("d:/test.gif")//d:/test.gif本地一张图片
JLabel l = new JLabel(icon)//创建具有指定图像的 JLabel 实例。
l.setSize(icon.getIconWidth(),icon.getIconHeight())//设置面板的宽度和高度
l.setBorder(BorderFactory.createLineBorder(Color.red))//给图片加上红色外框
f.getContentPane().add(l)
f.setSize(900,700)
f.setVisible(true)
l.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
x=e.getX()
y=e.getY()
}
})
l.addMouseMotionListener(new MouseMotionListener(){
public void mouseDragged(MouseEvent e) {
JLabel l = (JLabel)e.getSource()
l.setLocation(l.getX()+e.getX()-x,l.getY()+e.getY()-y)
}
public void mouseMoved(MouseEvent e) {}
})
}