java - 如何使 ActionEvent 和 KeyEvent 触发相同的操作?

标签 java event-handling applet keyevent

我正在编写一个小程序,想要弄清楚如何使按钮和按键事件覆盖相同的代码位。对于这个问题,我将这个按钮称为 fireButton。 Action 事件的代码当然如下所示:

public void actionPerformed(ActionEvent e) {
   if (e.getSource() == fireButton) {
      //all the code that pressing button executes
   }  
}

现在,我想按“enter”键来执行操作事件处理的相同代码,但我不想在 keyPressed 方法中再次重写所有代码。

具体来说,我正在编写一个战舰程序,“Fire”按钮从两个文本字段获取输入,处理异常,并将输入作为参数传递给在网格中的特定方 block 处触发的方法。理想情况下,按 Enter 键的功能与按开机按钮的功能相同。有没有办法让某个方法调用 actionPerformed 方法?如果不是,那么解决该问题的优雅方法是什么?

最佳答案

  1. 创建操作
  2. 将操作添加到 JButton
  3. 使用按键绑定(bind)将 Enter 键绑定(bind)到操作

阅读Swing tutorial 。有以下部分:

  1. 如何使用操作
  2. 如何使用按键绑定(bind)

如果您只是谈论使用回车键调用“Fire”按钮,请查看 Enter Key and Button有几种方法。

关于java - 如何使 ActionEvent 和 KeyEvent 触发相同的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289715/

相关文章:

java - 为什么我无法编译这个java代码?

java - 从 NetworkInterface Android 返回内部 IP

c# - 事件处理程序始终为空

java - Chrome下数字签名小程序的替代品

java - 检查小程序何时被重新绘制或调整大小

Java 2D 多边形 - 多边形碰撞检测

java - 如何通过控制台菜单使用用户输入来搜索数组 (Java)

javascript - 关闭事件处理程序中的变量

Angular 2+ "click outside"的 2 个组件,而不仅仅是 1

Java Applet 布局未按预期显示 o_O