给个歪方法
f (e.getClickCount() == 2) {
  double click
}else {}

解决方案 »

  1.   

    我用getClickCount判断不会有问题的,那你就判断点击的间隔值吧。
      

  2.   

    单击事件里面
    if (e.getClickCount() != 1) return;
    双击事件里面
    if (e.getClickCount() != 2) return;
      

  3.   

    比如:在单击时画圆,在双击时画矩形
    import java.awt.event.*;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseEvent;
    import java.awt.*;class testClicked extends Frame implements MouseListener{ 
    boolean bClick=true;
    testClicked(){

    this.addMouseListener(this);
    this.pack();
    this.setVisible(true);
    }
    public static void main(String[] args){
    new testClicked();
    }
    public void paint(Graphics g){
    if(bClick){
    g.drawRect(50,50,100,100);
    }
    if(!bClick){
    g.drawOval(10,10,100,100);
    }
    }
    public void mouseClicked(MouseEvent parm1) {
    // TODO: Add your code here
    if(parm1.getClickCount()==1){
    bClick=true;
    repaint();}
    else if(parm1.getClickCount()==2){
    bClick=false;
    repaint();
    }

    } public void mousePressed(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseReleased(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseEntered(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseExited(MouseEvent parm1) {
    // TODO: Add your code here
    }
    }
      

  4.   

    不想给代码,楼主...--------------------------------------------------------------------------------long mouseDoubleClickThreshold = 300L;
    long mouseUpClickTime = 0;
    int clickCount=0;public void mouseClicked(MouseEvent event){
    long eventTime = event.getWhen();
    long timeDiff = eventTime - mouseUpClickTime;
    if ( timeDiff < 0 ) {
    timeDiff = -timeDiff;
    }
    if ( timeDiff < mouseDoubleClickThreshold) {
    mouseUpClickTime = 0;
    //写单击事件
    } else {
    mouseUpClickTime = eventTime;
    //写双击事件
    }
    }
    --------------------------------------------------------------------------------
      

  5.   

    zjq1980:
    还是不行,
    双击后,隔300ms后再双击,还是会出现先画矩形后画圆啊
    import java.awt.event.*;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseEvent;
    import java.awt.*;class testClicked extends Frame implements MouseListener{ 
    boolean bClick=true;
    long mouseDoubleClickThreshold = 300L;
    long mouseUpClickTime = 0;
    int clickCount=0;
    testClicked(){

    this.addMouseListener(this);
    this.pack();
    this.setVisible(true);
    }
    public static void main(String[] args){
    new testClicked();
    }
    public void paint(Graphics g){
    if(bClick){
    g.drawRect(50,50,100,100);
    }
    if(!bClick){
    g.drawOval(10,10,100,100);
    }
    }
    public void mouseClicked(MouseEvent parm1) {
    // TODO: Add your code here
    long eventTime = parm1.getWhen();
    long timeDiff = eventTime - mouseUpClickTime;
    if ( timeDiff < 0 ) {
    timeDiff = -timeDiff;
    }
    if ( timeDiff > mouseDoubleClickThreshold) {
    mouseUpClickTime = eventTime;
    //写单击事件
    bClick=true;
    repaint();
    } else {
    mouseUpClickTime = eventTime;
    //写双击事件
    bClick=false;
    repaint();
    }
    } public void mousePressed(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseReleased(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseEntered(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseExited(MouseEvent parm1) {
    // TODO: Add your code here
    }
    }
      

  6.   

    import java.awt.event.*;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseEvent;
    import java.awt.*;
    import javax.swing.*;public class testClicked extends Frame implements MouseListener{ 
    boolean bClick=true;
    testClicked(){
    this.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    this.addMouseListener(this);
    this.pack();
    this.setVisible(true);
    }
    public static void main(String[] args){
    new testClicked();
    }
    public void paint(Graphics g){
    if(bClick){
    g.drawRect(50,50,100,100);
    }
    if(!bClick){
    g.drawOval(10,10,100,100);
    }
    }
    public void mouseClicked(MouseEvent parm1) {
    final testClicked  th=this;
    System.out.print("press");
    // TODO: Add your code here
    if(parm1.getClickCount()==1){
    bClick=true;
    int delay=500;
    Timer ti=new Timer(delay, new ActionListener(){
    public void actionPerformed(ActionEvent e){
    th.repaint();
    }
    });
    ti.setRepeats(false);
    ti.start();
    }
    else if(parm1.getClickCount()==2){
    bClick=false;
    //repaint();
    }

    } public void mousePressed(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseReleased(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseEntered(MouseEvent parm1) {
    // TODO: Add your code here
    } public void mouseExited(MouseEvent parm1) {
    // TODO: Add your code here
    }
    }
    用Timer,当击第一下时,谁也不知道以后还会不会再击第二下,因此无法判断是单击还是双击,只好等待,