swing中监听鼠标左右键的方法

虽然没有明确的函数说MouseEvent来自左键还是右键还是中键,但一般来说,有两种方法来判断:
[b]1.用MouseEvent.getButton(),[/b]其会返回一个常数,即java.awt.event.MouseEvent中的BUTTON1(1:左键),BUTTON2(2:中键),BUTTON3(3:右键)。
[b]2.用mouseevent.getModifiers(),[/b]也会返回一个常数,即4:right, 16:left

测试代码如下:

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

public class Button{
public Button(){
JFrame f=new JFrame("test right button");
JButton b=new JButton("click me");
b.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
JButton s=(JButton)e.getSource();
if(e.getButton()==java.awt.event.MouseEvent.BUTTON1) s.setText("left");
else if(e.getButton()==java.awt.event.MouseEvent.BUTTON2) s.setText("middle");
else if(e.getButton()==java.awt.event.MouseEvent.BUTTON3) s.setText("right");
}
}
);

f.getContentPane().add(b);
f.pack();
f.setVisible(true);

f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new Button();
}
}

你可能感兴趣的:(swing)