gpt4 book ai didi

java - 使用 Java GUI 与 KeyListener 进行益智游戏?

转载 作者:行者123 更新时间:2023-12-01 11:24:47 25 4
gpt4 key购买 nike

我想在我的益智游戏中实现关键监听器。 我已经使用 Action 监听器完成了此操作,但现在想继续使用关键监听器。

我的 Action 监听器逻辑是:

当点击特定按钮时它检查相邻按钮的图标是否为空如果为空则它们的图标将被交换现在,我该如何使用关键监听器来做到这一点? 谢谢。

if( b1==e.getSource()){

if(b2.getIcon()==null){
b2.setIcon(b1.getIcon());
b1.setIcon(null);
}
else if(b5.getIcon()==null){
b5.setIcon(b1.getIcon());

b1.setIcon(null);
}
}

最佳答案

您告诉我们您已经实现了 KeyListener,但它不起作用。没有代码,我们所能做的就是猜测,所以这是我的:

  • KeyListener 需要焦点才能工作,因此如果您的 GUI 有任何窃取焦点的组件,例如 JButtons、所有 JTextComponent(例如 JTextArea 或 JTextField、JComboBoxes、JLists...),那么您的 KeyListener 将无法工作。
  • 一种拼凑方法是强制具有 KeyListener 的组件获得焦点并贪婪地保持焦点。这是不可取的,因为它会迫使您的程序表现异常,因为大多数用户希望按钮在按下时具有并保持焦点,而文本组件如果不允许焦点则无法工作。
  • 同样,最好的解决方案通常是使用按键绑定(bind),因为它们不需要焦点即可工作,并且是捕获击键的更简洁的方式。请查看Key Bindings Tutorial然后看看我使用键绑定(bind)的示例代码 herehere .
<小时/>

再次为了获得更好、更具体的帮助,请告诉我们更多详细信息并向我们展示您的相关代码,最好是 minimal example program or MCVE .

关于java - 使用 Java GUI 与 KeyListener 进行益智游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30914950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com