如何让一个Panel相应keyPressed事件??(已经是第二次发该帖了) 估计是因为输入焦点不在这个panel上,这个panel中含有别的组件吗,如果有的话加上public void paint(Graphics g){ super.paint(); requestFocus();}试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To GhostValley(鬼谷) 可以了,谢谢,但可以简单说一下原因吗?? 这个问题我也遇到过.要想解决首先,用Panel.setFocusable(true)or覆盖isFocusable()返回true因为有些组件不直接支持键盘事件. 有一点地方需要注意,只有对已将建立了对等体(在awt中)或已经显示的组件调用requestFocus()才是有效的,所以在这里requestFocus()才放在paint()中,在java.awt.ComponentEvent接口中好像有一个方法是当组件showed时调用的(名字大概是COMPONENT_SHOW,我忘了,你查一下api吧),把requestFocus放在那个方法中更合适一些 to GhostValley(鬼谷) ,怎样查api啊,还有你的QQ是多少,我的是2731967.现在初学Java,想多点和你请教...... 有一點請注意,大家不用這麼麻煩,如果註冊KeyListener接口的話,必須保證焦點在JPanel上,這樣處理很不方便.JComponent組件提供了registerKeyboardAction()方法,用來註冊熱鍵,無論焦點在不在註冊的組件上,都會響應按鍵事件.另外,需要閱讀KeyStroke,比如:ActionListener action = new ActionListener(){ public void actionPerformed(ActionEvent e){ dosomething() ; }}KeyStroke hotKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK) ;this.getRootPane().registerKeyboardAction(action,null,showMessageStroke,JComponent.WHEN_IN_FOCUSED_WINDOW) ; setFocusable(true);requestFocusInWindow();就可以了哦 我办你查了,就是COMPONENT_SHOW在API在JDK的文档文件夹中,也可以在网上JAVA.SUN.COM右上角有个SEARCHEMAIL:[email protected] 大家晒下java开发代码的小技巧啊![整理贴] java中如何根据容器中的对象的某个属性重新存放在另一个容器中 来比一比 怎样设置窗口的初始位置? 高分求算法:求助一个取得数组中的次大值的数据下标的JAVA的算法 MouseEvent的isPopupTrigger()函数 请教! 接口、抽象类,看书看不懂,不明白是什莫东西,有沈莫用 今天学java的一点感触 Applet如何打开一个新的IE窗口? 请问如何取得指定日期的农历日期?(纯java实现) 哪位兄弟能给一个选择日期和时间的时间控件(用于WEB上的,要有时分秒的那种!)
可以了,谢谢,但可以简单说一下原因吗??
要想解决首先,用Panel.setFocusable(true)or覆盖isFocusable()返回true
因为有些组件不直接支持键盘事件.
还有你的QQ是多少,我的是2731967.
现在初学Java,想多点和你请教......
必須保證焦點在JPanel上,這樣處理很不方便.JComponent組件提供了registerKeyboardAction()方法,
用來註冊熱鍵,無論焦點在不在註冊的組件上,都會響應按鍵事件.
另外,需要閱讀KeyStroke,
比如:
ActionListener action = new ActionListener(){
public void actionPerformed(ActionEvent e){
dosomething() ;
}
}
KeyStroke hotKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK) ;
this.getRootPane().registerKeyboardAction(action,null,showMessageStroke,JComponent.WHEN_IN_FOCUSED_WINDOW) ;
requestFocusInWindow();
就可以了哦
在API在JDK的文档文件夹中,也可以在网上JAVA.SUN.COM右上角有个SEARCH
EMAIL:[email protected]