⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymousehandler.java

📁 Java 简易小相册.帮你理解Drag and Drop 的功能.
💻 JAVA
字号:
import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JComponent;
import javax.swing.TransferHandler;
/*
 * Created on 1/07/2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Xuesong Le
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class MyMouseHandler implements MouseListener, MouseMotionListener
{
    MyPicComponent
    	picComp =  null;
 
 private
 	MouseEvent
 		firstMouseEvent = null;
 		
    public  MyMouseHandler(MyPicComponent picComp)
    {
        this.picComp = picComp;
        
    }
    /* (non-Javadoc)
     * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
     */
    public void mouseClicked(MouseEvent e)
    {
        // TODO Get Focus
        picComp.requestFocusInWindow();
        
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
     */
    public void mousePressed(MouseEvent arg0)
    {
       // Get First MouseEvent if the image is not null;
        if( picComp.getImage()!= null)
        {
            //Make the First MouseEvent 
            firstMouseEvent = arg0;
            //Consumes this event so that it will not be processed in the default manner 
            //by the source which originated it.
            arg0.consume();
            
        }
        else
        {	
            // Drag command will not proceed
            return;
        }
        
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
     */
    public void mouseReleased(MouseEvent arg0)
    {
        // TODO Clear First MouseEvent
        firstMouseEvent = null;
        
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
     */
    public void mouseEntered(MouseEvent arg0)
    {
        // TODO Auto-generated method stub
        picComp.setCursor(new Cursor(Cursor.HAND_CURSOR ));
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
     */
    public void mouseExited(MouseEvent arg0)
    {
        // TODO Auto-generated method stub
        picComp.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
     */
    public void mouseDragged(MouseEvent arg0)
    {
            
        // TODO Auto-generated method stub
        if(firstMouseEvent != null) // Image Does exist
        {
            // Get Action Type Copy or Move
            int
            	ctrMask = MouseEvent.CTRL_MASK,
            	nAction = ( (arg0.getModifiersEx()& ctrMask) == ctrMask) ? 
            	        TransferHandler.COPY: TransferHandler.MOVE;
            	
            // Check dx or dx is greater than 5 pixels or not
            int
            	dx = Math.abs(arg0.getX()-firstMouseEvent.getX()),
            	dy = Math.abs(arg0.getY()-firstMouseEvent.getY());
            
            if( dx > 5 || dy > 5 )
            {
                
                //Tell the transfer handler to initiate the drag.
                TransferHandler
                	t = picComp.getTransferHandler();
                t.exportAsDrag(picComp,arg0,nAction);
                
                // Clear FirstMouseEvent
                firstMouseEvent = null;
            }
        }
    }

    /* (non-Javadoc)
     * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
     */
    public void mouseMoved(MouseEvent arg0)
    {
        // TODO Auto-generated method stub
        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -