java程序监听不到KeyListener,无法触发

首先,监听键盘相应的控件必须是获得焦点(focus)的情况下才能起作用.
其次,如果你要实现的效果是焦点在任何其他控件上时(比如其他button)回车也能起作用,那么,
这个动作的监听控件就不应该是你的登陆button,因为此时你的焦点在其他地方,你的登陆button并没有焦点,
所以无法获得响应.要在这种情况下使回车键响应,必须将你的监听控件设置在你的panel或fram或更底层的级别上,
这样只要焦点在此控件中任何一个button上,监听动作才能响应, 比如:
Panel p = new Panel();
JButton b1 = new JButton();
JButton b2 = new JButton();
p.add(b1);
p.add(b2);
p.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e){......} });
p.setFocusable(true);//给p提供焦点.这是swing的焦点问题,JFrame 、JComponent、JLabel默认是不可以获得焦点,
而且默认情况下,swing是把焦点分配给容器内可以获得焦点的第一个组件

转载于:https://my.oschina.net/u/586536/blog/1586876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值