写了个基于JDialog的类,其又实现了KeyListener接口,
它有两个成员变量:JPanel和JButton
JPanel是用来盛放JButton的
窗口类中再给放上JPanel我发现个奇怪的现象,描述如下:
如果JDialog中的JPanel中不放JButton的话,KeyListener能够生效
否则的话,即使注册了这个KeyListner,也无法监听按键事件由于代码很简单,大家可以自己试着写一下,我家里面没网,不方便给出代码~
真的是很奇怪,被这个问题搞了一个下午了,希望有高手能给解答一下
万分感谢!!
它有两个成员变量:JPanel和JButton
JPanel是用来盛放JButton的
窗口类中再给放上JPanel我发现个奇怪的现象,描述如下:
如果JDialog中的JPanel中不放JButton的话,KeyListener能够生效
否则的话,即使注册了这个KeyListner,也无法监听按键事件由于代码很简单,大家可以自己试着写一下,我家里面没网,不方便给出代码~
真的是很奇怪,被这个问题搞了一个下午了,希望有高手能给解答一下
万分感谢!!
解决方案 »
- 有人知道java Test < input.txt 这个"<" 怎么理解吗?
- 如何判断一个类中是否存在指定名字的字段
- 调用接口返回一个超长字符串,怎么截取出其中的数据?
- 如何判断输入的日期格式正确?
- JAVA小问题,一定要来看一下额!
- java.util.properties 有什么用啊?
- <jsp:setProperty name="PageHeaderInfo" property="*" />是给所有的属性设值,那具体的每个属性得到的值是多少?
- 这段代码在linux上运行一会JVM就崩掉了,哪位大虾能说明白为什么?
- 哪里有Java函数手册DOWMLOAD?
- 回调与递归有没有给我解释下
- 过年了,散点分:谈谈C语言的面向对象思想???
- java自动打包与自动拆包
你一个空的JPanel上面没有任何东西的时候
焦点肯定默认在JPanel上,所以这个时候KeyListener可以生效但是你加了一个JButton之后,焦点到了JButton上面,
所以你注册在JPanel上的KeyListener就不生效了
而JPanel默认不会通过鼠标点击获得焦点,
即使你点了JPanel之后,也无法让JPanel获得焦点
所以你可以自己再给这个JPanel加一个MouseListener,
使其可以通过鼠标点击获得焦点