事件: 当发生了某个事件的时候,就会有相应处理方案。
事件源 监听器 事件 处理方案
动作事件监听器
public class Demo1 {
public static void main(String[] args) {
JFrame frame = new JFrame("窗体");
JButton button = new JButton("点我啊");
frame.add(button);
//给按钮添加动作监听器 动作时间监听器对于鼠标点击以及空格键都会起作用的。
button.addActionListener(new ActionListener() {
//当按钮被点击的时候,就会调用actionPerformed的方法。
@Override
public void actionPerformed(ActionEvent e) { // ActionEvent 当前按钮被点击的时候,jvm就会把对应 的事件传递ActionEvent,
//并且调用actionPerformed方法。
//System.out.println("哎呀,被点了...");
JButton button =(JButton) e.getSource(); //getSource() 获取到事件源
if(button.getText().equals("点我啊")){
button.setText("点他吧");
}else{
button.setText("点我啊");
}
}
});
FrameUtil.initFrame(frame, 200, 200);
}
}
鼠标事件监听器
public class Demo2 {
public static void main(String[] args) {
JFrame frame = new JFrame("鼠标事件监听器");
JButton button = new JButton("按钮");
frame.add(button);
//给按钮添加鼠标事件监听器
/*button.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标松开...");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下..");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("鼠标移出...");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标进入...");
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标单击..");
}
});
添加鼠标监听器的时候我只使用 到单击事件,但是目前要我实现所有的方法??
解决方案: 适配器。适配器是实现了MouseListener方法的所有方法,但是实现的方法全部都是空实现。
*/
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// System.out.println("鼠标单击了..");
if(e.getClickCount()==2){
System.out.println("双击了..");
}
}
});
FrameUtil.initFrame(frame, 300, 300);
}
}
键盘事件监听器
public class Demo3 {
public static void main(String[] args) {
JFrame frame = new JFrame("键盘事件监听器");
JButton button = new JButton("按钮");
frame.add(button);
//给按钮添加键盘事件监听器
/*button.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("键入某个键");
}
@Override
public void keyReleased(KeyEvent e) {
// System.out.println("释放某个键");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("按下某个键..");
}
});*/
button.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// System.out.println("按下的字符:"+e.getKeyChar());
//System.out.println("获取键对应的数值:"+ e.getKeyCode());
int code = e.getKeyCode();
switch (code) {
case 38:
System.out.println("上");
break;
case 40:
System.out.println("下");
break;
case 37:
System.out.println("左");
break;
case 39:
System.out.println("右");
break;
default:
break;
}
}
});
FrameUtil.initFrame(frame,300, 300);
}
}