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();
}
}