java - Java中是否可以删除keyTyped和keyReleased方法?

标签 java

我已经向我的 JFrame 添加了一个新的 keyListener。 IntelliJ Idea 为我生成了 keyTyped、keyPressed 和 keyReleased 方法。我只需要 keyPressed 方法,所以我想删除其他方法。如果我这样做,我会收到错误: java:“classname”不是抽象的,不会覆盖 java.awt.event.KeyListener 中的抽象方法 keyReleased(java.awt.event.KeyEvent)

@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
    //do something
}

@Override
public void keyReleased(KeyEvent e) {
}

最佳答案

你不能,不。 KeyListener是一个接口(interface),当实现实现接口(interface)的具体类时,需要实现所有方法。

但是,您可以使用 java.awt.event.KeyAdapter 而不是 KeyListener。由于这是一个抽象类,因此您需要扩展 KeyAdapter 而不是实现 KeyListener

它为所有 KeyListener 方法定义了空方法,因此您只需为要处理的事件编写方法即可。

关于java - Java中是否可以删除keyTyped和keyReleased方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794411/

相关文章:

java - android ping InetAddress 和 editText

java - Java 中整数值列表的总和 (JDK 1.7)

java - AdMob 广告未显示(使用 Logcat 输出)

java - 可绘制到位图,可绘制未知大小/尺寸

java - FileInputStream vs ClassPathResource vs getResourceAsStream 和文件完整性

java - 正则表达式从 Jdbc url 查找主机名

java - JPA在MySQL数据库中保存错误的日期

java - Waffle JAAS 认证

java - 如何在 Google 电子表格中获取单个工作表的工作表名称 - Google Sheet Api v4 - Java

java - JPA ManyToMany 不填充对象属性