1.我在鼠标按下的时候获得图片。再mouseDragged里面怎么让图片跟着鼠标移动呢?
我是把JTable里面的一行数据生成图片
 macroTable.addMouseListener(new MouseAdapter() {     //对Jtable添加事件
            public void mousePressed(MouseEvent evt) {
                
                Point mousepoint = evt.getPoint(); 
                getRowIndex = macroTable.rowAtPoint(mousepoint);  //得到选中的行                Vector vec = defaultTableModel.getDataVector();
                 for (int i = 0; i < vec.size(); i++) {
                    if (i == getRowIndex) {
                        if (vec.get(i) == null && "".equals(vec.get(i))) {
                            return;
                        }
                        object = vec.get(i);
                    }
                }
                imageIcon = fontChangeImage(object.toString());   //把行数据生成图片
                            }            @Override
            public void mouseDragged(MouseEvent e) {
                // 这个里面该怎么处理。 不明白
                
            }
}

解决方案 »

  1.   

    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("http://img.baidu.com/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) {}
      });
     }