【问题标题】:Default selected JButton默认选择的 JButton
【发布时间】:2013-04-08 13:22:11
【问题描述】:

所以,我只是想知道。假设我有一个简单的乒乓球游戏,由两个 JButton 组成,它们是随着按键输入移动的乒乓球,一个较小的 JButton 用于在计时器中移动的球,以及一个用于得分的文本框。当我做这个时,我必须先点击按钮才能移动它。有没有办法让它在程序运行时默认选择按钮,这样我就可以直接按下键来移动它而无需先单击它?谢谢。

【问题讨论】:

  • 调整你的逻辑,让 JButton 中的代码在正常的程序流程中执行。
  • 是的,可以使用 KeyBindings(乒乓球游戏)和键盘上的 UP 和 DOWN 键,然后不需要任何焦点,只需正确地将 InputMap、ActionMap 设置为所需的容器(以避免另一个可聚焦的 JComponents 的并发性,如果他们是....)

标签: java swing jbutton


【解决方案1】:

使用JFrame 的根窗格的setDefaultButton 方法:

myFrame.getRootPane().setDefaultButton(button);

【讨论】:

  • 需要设置框架的root pane的默认按钮。
【解决方案2】:

在框架constructor制作按钮后使用下面的代码:

this.getRootPane().setDefaultButton(button);

【讨论】:

    【解决方案3】:

    我认为您可以使用 requestFocus() 默认选择一个。 比如:

    defaultJButton.requestFocus();
    

    您应该在初始化或每次要重新启动、重置状态或类似操作时执行此操作。

    【讨论】:

    • -1,不要使用 requestFocus()。阅读该方法的 API 文档。它会建议正确的使用方法。
    猜你喜欢
    • 1970-01-01
    • 2017-12-18
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多