java之事件監聽(三)鼠標監聽

package 第一版;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.*;
public class draw5 extends JFrame{
	My_Panel mp = null;
	public draw5() {
		// TODO Auto-generated constructor stub
		mp = new My_Panel();
		this.add(mp);
		// 註冊監聽
		this.addMouseListener(mp); // 監聽鼠標
		this.addKeyListener(mp); // 監聽鍵盤
		this.addMouseMotionListener(mp); // 監聽鼠標移動
		
		this.setSize(300, 300); // 設置框體大小
		this.setLocation(400,150); //設置框體顯示的位置
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置框體退出
		this.setVisible(true); // 顯示框體
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		draw5 d = new draw5();
	}

}

class My_Panel extends JPanel implements MouseListener,KeyListener,MouseMotionListener{
	public void paint(Graphics g){
		super.paint(g);
	}
	//鼠標點擊
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		System.out.println("鼠標點擊");
		System.out.println("鼠標位置 x = "+e.getX()+" y = "+e.getY());
		System.out.println("鼠標鍵 = "+e.getButton() + " 點擊次數 "+e.getClickCount()); // 輸出1是左鍵,2是中鍵,3是右鍵
	}
	//鼠標移動到My_Panel
	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標移動到My_Panel");
	}
	//鼠標離開My_Panel
	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標離開My_Panel");
	}
	//鼠標按下
	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標按下");
	}
	//鼠標鬆開
	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標鬆開");
	}
	//鍵按下
	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("鍵  = "+e.getKeyChar());
		
	}
	//鍵鬆開
	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}
	//鍵輸入
	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}
	//鼠標按鍵在組件上按下並拖動時調用
	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標按鍵在組件上按下並拖動時調用");
	}
	//鼠標光標移動到組件上但無按鍵按下時調用
	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
	//	System.out.println("鼠標光標移動到組件上但無按鍵按下時調用");
	}
}


發佈了161 篇原創文章 · 獲贊 21 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章