/* MouseDoubleClick.java
 * ダブルクリックのマウス第一打がシングルクリックと
 * 判定されてしまうことを体験するプログラム
 *
 * [この問題を解決するやり方の例]
 * [ダブルクリックの間隔を測定するプログラム]
 */
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class MouseDoubleClick{

  public MouseDoubleClick(){
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container con = frame.getContentPane();

    JLabel label 
      = new JLabel
      ("<html><center>Do<p>Double Click<p>or<p>Single Click</center></html>",
       JLabel.CENTER);
    label.addMouseListener(new DoubleClickHandler());

    con.add(label);
    frame.setBounds(100, 100, 300, 300);
    frame.setVisible(true);
  }

  public static void main(String[] args){
    new MouseDoubleClick();
  }
}

class DoubleClickHandler extends MouseAdapter{

  public void mouseClicked(MouseEvent e){
    int count = e.getClickCount();

    if (count == 2){
      processDoubleClick();
    }
    else if (count == 1){
      processSingleClick();
    }
  }

  void processDoubleClick(){
    System.out.println("Wow, Double Click!");
  }

  void processSingleClick(){
    System.out.println("Bah, Single Click...");
  }
}