Java 事件监听
2023-09-11 14:16:16 时间
package com.gibe;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Listen extends JFrame {
private MyPanel panel = null;
public static void main(String[] args) {
Listen listen = new Listen();
}
public Listen() {
panel = new MyPanel(10, 10);
this.add(panel);
this.setSize(400, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
// 窗口JFrame可监听键盘事件
this.addKeyListener(panel);
}
}
// MyPanel画板可绘制圆,KeyListener可监听键盘事件
class MyPanel extends JPanel implements KeyListener {
// 把左上角坐标(x,y)设置变量
private int x;
private int y;
public MyPanel(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.fillOval(x, y, 20, 20);
}
//有字符输出时,该方法就会触发
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
// System.out.println((char)e.getKeyCode()+"pressed");
switch (e.getKeyCode()) {
case KeyEvent.VK_DOWN:
++y;
break;
case KeyEvent.VK_UP:
--y;
break;
case KeyEvent.VK_LEFT:
--x;
break;
case KeyEvent.VK_RIGHT:
++x;
break;
default:
System.out.println(e.getKeyChar() + " ignored");
}
// 画板重绘
this.repaint();
}
//当某个键释放(松开),该方法会触发
@Override
public void keyReleased(KeyEvent e) {
}
}
相关文章
- [Java基础] java多线程关于消费者和生产者
- JAVA学习(五):Java面向对象编程基础
- Java实现 LeetCode 796 旋转字符串 (水题)
- Java实现 蓝桥杯VIP 算法训练 -2进制(暴力)
- Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)
- Java实现洛谷 P1072 Hankson 的趣味题
- Java GUI 窗体事件
- Java GUI 键盘事件
- Java GUI 键盘事件
- Java实现第八届蓝桥杯正则问题
- Java实现 黑洞数
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- java 11 标准Java异步HTTP客户端
- 【JAVA】MacBook安装Java环境及eclipse
- 【JAVA】java中的length和length()
- Java发送带html标签内容的邮件
- JAVA事件监听机制学习
- 【JAVA】MacBook安装Java环境及eclipse
- 【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
- 【JAVA】毕向东Java基础视频教程-笔记
- 【Java】java使用反射访问对象方法和成员变量
- Atitit。监听键盘上下左右方向键事件java js jquery c#.net
- 【java】Java连接mysql数据库及mysql驱动jar包下载和使用
- 干了三年的Java,你竟然还不会MySQL性能优化
- 【Java】java 性能监控及工具
- Java 延时队列 DelayQueue
- JVM源码分析之一个Java进程究竟能创建多少线程
- Java开发技术之成为高级java工程师必须学习的三个技术
- Java 方法
- java中的事件监听是怎样实现随时监听的