如果用MouseEvent类捕获的对象 我发现没有getSource()函数.. 就是不能像ActionEvent类一样可以得到产生事件的对象 但是ActionEvent类中好像又没有能判断到底是按了鼠标左键还是右键的方法 大家帮帮忙

解决方案 »

  1.   

    if((e.getModifiers()&InputEvent.BUTTON3_MASK)!=0){}
      

  2.   

    当单击鼠标按键时,生成事件并发送给已注册的 MouseListener。可以使用 InputEvent.getModifiers() 和 InputEvent.getModifiersEx() 方法检索模式键的状态。InputEvent.getModifiers() 所返回的鼠标按键掩码只反映改变了状态的按键,而没有反映所有按键的当前状态。(注:由于 ALT_MASK/BUTTON2_MASK 和 META_MASK/BUTTON3_MASK 的值是重叠的,所以对于涉及组合键的鼠标事件并不总是正确的。
      

  3.   

    e.getModifiers()是获得按邮件同时所有模式键的状态
    InputEvent.BUTTON3_MASK就是右键的键值了 ~
      

  4.   

    哦~我明白你的意思了~但是MouseEvent 里面是有getSource()的 配合InputEvent.BUTTON3_MASK使用就知道在哪个对象上面点了右键了~~写段代码给你参考下:
    import javax.swing.*;
    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.*;
    public class Mouse extends JFrame implements MouseListener{
    private JButton aaa;
    private JButton bbb;
    public Mouse(){
    Container contenpane=this.getContentPane();
    contenpane.setLayout(new GridLayout(2,1));
    aaa=new JButton();
    bbb=new JButton();
    aaa.addMouseListener(this);
    bbb.addMouseListener(this);
    contenpane.add(aaa);
    contenpane.add(bbb); } public void mouseClicked(MouseEvent e) {
    if((JButton)e.getSource()==aaa&InputEvent.BUTTON3_MASK!=0)
    System.out.println("aaa上点击了右键");
    else if((JButton)e.getSource()==bbb&InputEvent.BUTTON3_MASK!=0)
    System.out.println("bbb上点击了右键");
    } public void mouseEntered(MouseEvent arg0) {
    } public void mouseExited(MouseEvent arg0) {
    } public void mousePressed(MouseEvent arg0) {
    } public void mouseReleased(MouseEvent arg0) {
    }
    public static void main(String[] args){
    Mouse mouse=new Mouse();
    mouse.setSize(100,100);
    mouse.setVisible(true);
    }
    }