swing 能给一次给多个组件添加同一侦听吗 如上, 具体点是我打开一个弹出窗口, 窗口上有多个可以接收焦点的组件, 但是不管焦点在哪个组件上, 我只有按下ESC便可以将这个弹出窗口关闭, 这个怎么实现?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建一个新的侦听,就是捕捉键盘按键,如果是ESC的键值,则关闭。然后在每一个组件上都加上这个监听的动作就行了。 答:当然有啦,否则这样加,还不累死人啊.方法是:向窗口中某一个组件注册一个击键处理,要求是WHEN_IN_FOCUSED_WINDOW就行了.代码:jButton.registerKeyboardAction(actionListener, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE), JComponent.WHEN_IN_FOCUSED_WINDOW);这样,当组件jButton拥有焦点或jButton没有焦点但与它处于同一个窗口中的任何其它组件所有焦点时,都可调用这个actionListener(即:事件处理的那个对象) 解析大量数据的excel2007怎么获取列的类型 各位大侠看看这那里出错了:下表越界问题 找到工作咯 理行承诺,请hui_feng(盘桃2)来接分。 界面设计思路请教 jive 请大家指点 两个中文字符串怎么比较一个是不是另外的子串 JBUILDER7.0,把程序编辑区的背景改成其它颜色应该怎么设? 转贴:从一个ConnectionPool的实现看Design Pattern的运用 SAXReader 乱码 edtftpj实现ftp时的问题 怎么给jpanel 加一个 滚动条
当然有啦,否则这样加,还不累死人啊.
方法是:向窗口中某一个组件注册一个击键处理,要求是WHEN_IN_FOCUSED_WINDOW就行了.
代码:jButton.registerKeyboardAction(actionListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE),
JComponent.WHEN_IN_FOCUSED_WINDOW);
这样,当组件jButton拥有焦点或jButton没有焦点但与它处于同一个窗口中的任何其它组件所有焦点时,都可调用这个actionListener(即:事件处理的那个对象)