package lecture.swing;

import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.event.MouseInputListener;

/**
 * MouseInputListenerのサンプル Java Swing
 */
class MouseInputListenerSample {

  static MouseInputListenerImpl  mouseInputListenerImpl  = new MouseInputListenerImpl();

  public static void main(String[] args) {
    JFrame frame = new JFrame("Mouse Event/MouseMotion Event");
    frame.setBounds(100, 100, 400, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTextArea textField = new JTextArea();
    textField.addMouseListener(mouseInputListenerImpl);
    textField.addMouseMotionListener(mouseInputListenerImpl);

    frame.add(new JScrollPane(textField));
    frame.setVisible(true);
  }
}
/**
 * MouseInputListener実装クラス.
 */
class MouseInputListenerImpl implements MouseInputListener {

  @Override
  public void mouseClicked(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("クリックされました\n");
  }

  @Override
  public void mouseEntered(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("カーソルが入りました\n");
  }

  @Override
  public void mouseExited(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("カーソルが外れました\n");
  }

  @Override
  public void mousePressed(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("マウスボタンを押しました\n");
  }

  @Override
  public void mouseReleased(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("マウスボタンを離しました\n");
  }

  @Override
  public void mouseDragged(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("ドラッグしました\n");
  }

  @Override
  public void mouseMoved(MouseEvent mouseEvent) {
    JTextArea textField = (JTextArea) mouseEvent.getSource();
    textField.append("移動しました\n");
  }
}
//---------------------------------------------------
//・目次 - Swing
//  http://blogs.yahoo.co.jp/artery2020/40568561.html
//・目次 - Java入門
//  http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
//  http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
//  http://blogs.yahoo.co.jp/artery2020/39657784.html
//・目次 - 単なる雑談
//  http://blogs.yahoo.co.jp/artery2020/40599964.html
//---------------------------------------------------