2012-05-13 18 views
3

按下執行我想執行的mouseEntered只有當鼠標正在按下時,基本上是這樣的:如何擁有的mouseEntered只有當鼠標在Java中

@Override 
    public void mouseEntered(MouseEvent e) { 
     if(e.mouseDown()){ 
     //Do stuff 
     } 
    } 

我能像這樣做,或做我需要一個鼠標移動偵聽器或什麼?

謝謝!

編輯:對不起應該讓這更清楚,但我需要鼠標被按下它進入組件之前,它像按住鼠標懸停在組件激活監聽

回答

7

你可能想評估的MouseEvent API,看看有什麼方法都可以,因爲我認爲你會發現有你的解決方案:

myComponent.addMouseListener(new MouseAdapter() { 

    @Override 
    public void mouseEntered(MouseEvent mEvt) { 
     System.out.println("mouse entered"); 

     if (mEvt.getModifiers() == MouseEvent.BUTTON1_MASK) { 
      System.out.println("Mouse dragging as entered"); 
     } 

    } 

    }); 

例如:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class MouseEnteredPressed extends JPanel { 
    private static final int SIDE = 500; 

    public MouseEnteredPressed() { 
     setLayout(new GridBagLayout()); 
     JLabel label = new JLabel("Hovercraft Rules The World!"); 
     label.setFont(label.getFont().deriveFont(Font.BOLD, 24)); 
     label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY)); 
     add(label); 

     label.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseEntered(MouseEvent mEvt) { 
      System.out.println("mouse entered"); 

      if (mEvt.getModifiers() == MouseEvent.BUTTON1_MASK) { 
       System.out.println("Mouse dragging as entered"); 
      } 
     } 
     }); 

    } 

    @Override 
    public Dimension getPreferredSize() { 
     return new Dimension(SIDE, SIDE); 
    } 

    private static void createAndShowGui() { 
     MouseEnteredPressed mainPanel = new MouseEnteredPressed(); 

     JFrame frame = new JFrame("MouseEnteredPressed"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(mainPanel); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGui(); 
     } 
     }); 
    } 
} 
+0

比ks工作! –

+0

@Epic:你很受歡迎! –

+0

@HovercraftFullOfEels非常注重修飾符+1 – mprabhat

相關問題