java_鼠标事件

package org.du.win;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;

import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * 事件源(控件<button>) -> 事件对象(单击<信息>) -> 事件监听(方法<处理>)
 */

//4.extends 父类,继承。
//5.implements 接口,实现。
//6.abstract 抽象,可不实现所有函数。
abstract class But implements ActionListener{
    int n = 0;
    public void actionPerformed(ActionEvent e) {
        JButton jb = (JButton) e.getSource();
        jb.setText("Click " + (++n) + " Times.");
    }
    
}

public class ClickButton {
    
    JFrame jf = new JFrame();
    Container ct = jf.getContentPane();
    //1.类同名,大写首字母,无返回值==>构造函数。
    ClickButton(){
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setSize(400, 200);
    }
    
    public void show() {
        jf.setVisible(true);
    }
    
    public void add(String direct) {
        JButton jb = new JButton(direct);
        //jb.addActionListener(new But());
        //3.匿名内部类<省略声明部分>(参数位置===>new 接口{实现})。
//        jb.addActionListener(new ActionListener() {
//            int cnt = 0;
//            public void actionPerformed(ActionEvent e) {
//                JButton jb = (JButton) e.getSource();
//                jb.setText("" + (++cnt));
//                System.out.println(cnt + " <= " + e.getActionCommand());
//            }
//        });
        jb.addMouseListener(new MouseAdapter() {
            int cnt = 1000;
            public void mouseClicked(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText(" " + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mousePressed(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                
            }

            public void mouseReleased(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());            
            }

            public void mouseEntered(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mouseExited(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());    
            }
            
            public void mouseWheelMoved(MouseWheelEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }

            public void mouseDragged(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }

            public void mouseMoved(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }
        });
        
        jb.addMouseMotionListener(new MouseAdapter() {
            int cnt = 2000;
            public void mouseClicked(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText(" " + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mousePressed(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                
            }

            public void mouseReleased(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());            
            }

            public void mouseEntered(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mouseExited(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());    
            }
            
            public void mouseWheelMoved(MouseWheelEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }

            public void mouseDragged(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }

            public void mouseMoved(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }
        });
        
        jb.addMouseWheelListener(new MouseAdapter() {
            int cnt = 3000;
            public void mouseClicked(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText(" " + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mousePressed(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                
            }

            public void mouseReleased(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());            
            }

            public void mouseEntered(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());        
            }

            public void mouseExited(MouseEvent e) {
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());    
            }
            
            public void mouseWheelMoved(MouseWheelEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getWheelRotation());                    
            }

            public void mouseDragged(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }

            public void mouseMoved(MouseEvent e){
                JButton jb = (JButton) e.getSource();
                jb.setText("" + (++cnt));
                System.out.println(cnt + " " + Thread.currentThread().getStackTrace()[1].getMethodName() + " " + e.getPoint());                    
            }
        });
        
        ct.add(jb, direct);
    }
    
    public static void main(String[] args) {
        ClickButton ck = new ClickButton();
        ck.add(BorderLayout.NORTH);
        ck.add(BorderLayout.SOUTH);
        ck.add(BorderLayout.EAST);
        ck.add(BorderLayout.WEST);
        ck.add(BorderLayout.CENTER);
        //2.最后setVisible,否则控件,可能会导致画面刷新异常。
        ck.show();
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值