java按钮事件没反应_Java:JPanel在单击按钮后没有收到关键事件...

首先,感谢您花时间阅读我的问题,我很感激.

这是我现在所拥有的概述:

我正在写一个滑块益智游戏,3比3使用按钮作为网格单元格.我已经为JPanel添加了一个关键监听器,它可以保存这些按钮,并且它们可以很好地响应键盘事件.

然而,这个问题有点奇怪,而且我还没有真正确定它为何会导致这种不稳定的行为.单击其中一个“按钮”后,其中没有一个按钮注册了事件监听器,没有任何按钮移动,但是当您按下键事件时,按键变得无响应.

我的问题是这样的:我知道这是非常模糊的,但这是否会让任何人成为Java问题,或者听起来像我的错误代码背后的所有这些?

我对任何建议都持开放态度,因为这已经困扰了我一个星期了,我仍然不知道是什么导致了这个问题.

再次感谢您抽出宝贵时间仔细阅读此内容.

@trashgod:是的,当然.

public class Test2 extends JPanel{

JButton a = new JButton("A");

Test2(){

setFocusable(true);

// Set layout to grid layout

setLayout(new GridLayout(3, 3));

// Add button

//a.setEnabled(false);

add(a);

// Register key event which shifts it to the next cell when the right arrow is pressed

addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

if (e.getKeyCode() == KeyEvent.VK_LEFT) {

remove(a);

JButton b = new JButton("B");

//b.setEnabled(false);

add(b);

add(a);

validate();

}

}

});

}

}

代码片段的功能:JPanel接收键事件,左箭头键,确切地说,删除按钮’a’,并添加一个新按钮’b’,然后每次都按下’a’按钮.但是,如果您尝试运行该程序,在单击按钮后,它将停止侦听关键事件.

我刚刚考虑过它,它是否与JPanel失去的焦点有关?如果是这样,我应该注意哪些特殊方法来恢复失去的焦点?

谢谢!

(顺便说一句,setEnabled注释是我尝试解决这个问题,只需禁用按钮,但它仍然没有解释如何将丢失的焦点恢复到JPanel,如果那是手头的问题.)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值