Android开发笔记整理

本文详细介绍了Java中事件处理的基本概念,包括事件源、事件监听器和事件的关联,通过实例展示了如何使用事件监听机制来实现按钮颜色变化、下拉框选择改变、鼠标移动与拖动、键盘按键响应及窗口事件处理。此外,还探讨了适配器(变压器)机制在简化事件处理中的应用。

事件三要素:事件源->监听器->事件

package com.event.test;

import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();
Button b = new Button("click me!");
//事件源->事件监听器->事件
b.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Test.....");

}
});
f.add(b);
f.setSize(200,200);
f.setVisible(true);

}
}


//点击按钮改变模板颜色

package com.event.test;


import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();

final Panel p = new Panel();
Button red = new Button("red");
Button blue = new Button("blue");
Button black = new Button("black");

red.addActionListener(new ActionListener(){


@Override
public void actionPerformed(ActionEvent e) {
p.setBackground(Color.red);

}

});
blue.addActionListener(new ActionListener(){


@Override
public void actionPerformed(ActionEvent e) {
p.setBackground(Color.blue);

}

});
black.addActionListener(new ActionListener(){


@Override
public void actionPerformed(ActionEvent e) {
p.setBackground(Color.black);

}

});
p.add(red);
p.add(blue);
p.add(black);

f.add(p);
f.setSize(200,200);
f.setVisible(true);

}
}



事件处理机制:

委派式事件处理机制(代理机制)

1.Item  下拉框

package com.event.test;

import java.awt.Choice;
import java.awt.Frame;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
 * Item  下拉框
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();

Choice c = new Choice();
c.addItem("red");
c.addItem("yellow");
c.addItem("blue");

c.addItemListener(new ItemListener(){


@Override
public void itemStateChanged(ItemEvent e) {
System.out.println("changed");

}

});

f.add(c);
f.setSize(200,200);
f.setVisible(true);

}
}



2. Mousemotion 鼠标事件

package com.event.test;
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
/**
 * Mousemotion 鼠标事件
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();
f.addMouseMotionListener(new MouseMotionListener(){


@Override
public void mouseDragged(MouseEvent e) {
System.out.println("Mouse Dragged");

}


@Override
public void mouseMoved(MouseEvent e) {
System.out.println("Mouse Moved");

}

});


f.setSize(200,200);
f.setVisible(true);

}
}


3.package com.event.test;


import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
 * Mouse 鼠标事件
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();
f.addMouseListener(new MouseListener(){


@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouse Clicked");

}


@Override
public void mousePressed(MouseEvent e) {
System.out.println("mouse Pressed");

}


@Override
public void mouseReleased(MouseEvent e) {
System.out.println("mouse Released");

}


@Override
public void mouseEntered(MouseEvent e) {
System.out.println("mouse Entered");

}


@Override
public void mouseExited(MouseEvent e) {
System.out.println("mouse Exited");

}




});

f.setSize(200,200);
f.setVisible(true);

}
}


4.key 键盘事件

package com.event.test;

import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
 * key 键盘事件
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();
f.addKeyListener(new KeyListener(){


@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}


@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP){
System.out.println("up");
}else if(e.getKeyCode()==KeyEvent.VK_DOWN){
System.out.println("down");
}else if(e.getKeyCode()==KeyEvent.VK_LEFT){
System.out.println("left");
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
System.out.println("right");
}

}


@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}



});

f.setSize(200,200);
f.setVisible(true);

}
}


5.键盘事件+窗口关闭

package com.event.test;


import java.awt.Frame;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
/**
 * key 键盘事件+窗口关闭
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();

f.addWindowListener(new WindowListener(){


@Override
public void windowOpened(WindowEvent e) {
System.out.println("已经打开窗口");

}


@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}


@Override
public void windowClosed(WindowEvent e) {


}


@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub

}


@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub

}


@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub

}


@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub

}

});
f.addKeyListener(new KeyListener(){


@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}


@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP){
System.out.println("up");
}else if(e.getKeyCode()==KeyEvent.VK_DOWN){
System.out.println("down");
}else if(e.getKeyCode()==KeyEvent.VK_LEFT){
System.out.println("left");
}else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
System.out.println("right");
}

}


@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}



});

f.setSize(200,200);
f.setVisible(true);

}
}

6.文本监听事件+回车键发送消息功能

package com.event.test;


import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
 * TextListener 文本监听事件+回车键发送消息功能
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();

final TextField tf = new TextField(30);
Button send= new Button("send");
final TextArea ta = new TextArea();

tf.addKeyListener(new KeyListener(){
@Override
public void keyTyped(KeyEvent e) {}


@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_ENTER){
String str = tf.getText();
ta.append("KEN:\n"+str+"\n\r");
}
}


@Override
public void keyReleased(KeyEvent e) {}

});


send.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String str = tf.getText();
// ta.setText(str);
ta.append("KEN:\n"+str+"\n\r");
}
});

Panel p = new Panel();
   p.add(tf);
   p.add(send);
f.add(p,BorderLayout.SOUTH);

f.add(ta,BorderLayout.NORTH);
f.setSize(400,300);
f.setVisible(true);

}
}



适配器(变压器)

package com.event.test;


import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
/**
 * TextListener 文本监听事件+回车键发送消息功能
 * @author ken
 *
 */
public class EventTest {
public static void main(String[] args) {
Frame f = new Frame();
f.addWindowListener(new MyAdapter());

f.setSize(400,300);
f.setVisible(true);

}
}
class MyAdapter extends MyListener{   //取其中一个方法windowClosing并定义
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}


class  MyListener implements WindowListener{


@Override
public void windowOpened(WindowEvent e) {
}


@Override
public void windowClosing(WindowEvent e) {
}


@Override
public void windowClosed(WindowEvent e) {
}


@Override
public void windowIconified(WindowEvent e) {
}


@Override
public void windowDeiconified(WindowEvent e) {
}


@Override
public void windowActivated(WindowEvent e) {
}


@Override
public void windowDeactivated(WindowEvent e) {
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值