import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.Timer;
class test extends JFrame {
private boolean doubleClick = false;
public test() {
this.setSize(400, 250);
this.setLayout(null);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getClickCount() == 1) {
doubleClick = false;
Timer t = new Timer(300, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ClickAction(doubleClick);
}
});
t.setRepeats(false);
t.start();
} else if(e.getClickCount() == 2) {
doubleClick = true;
}
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
this.setVisible(true);
}
public void ClickAction(boolean dbClick) {
if(!dbClick) {
System.out.println("Clicked.");
} else {
System.out.println("DoubleClicked.");
}
}
public static void main(String[] args) {
new test();
}
}
单击:
双击:
不会出现双击时单击操作和双击操作都运行的情况。