现在面板上用setFocusable(true)把焦点定位到面板上
载实现KeyListener借口
实现下面三种方法
keyPressed(),keyRelease(),keyTyped()
用KeyEvent类中的getKeyChar()方法捕获输入的字符'd'
载实现KeyListener借口
实现下面三种方法
keyPressed(),keyRelease(),keyTyped()
用KeyEvent类中的getKeyChar()方法捕获输入的字符'd'
解决方案 »
- 今年大三了学java来的及吗
- 能不能对同一个frame更换多个面板,而每个面板上界面都不一样?如果可以的话,假如要更换面板,用add函数直接添加新面板可以吗?
- 网络服务器有哪些主流操作系统?
- 怎么样将JColorchooser 中的颜色置为当前文本字体的颜色
- 关于JAVA堆栈的问题
- 请问如何为JMenu添加组合快捷键?
- 关于java.io.Serializable的问题
- 小弟实在有些糊涂!!请各位大虾指点
- 请问java.lang.reflect这个包(反射)的主要用途?java.lang.reflect.Method这个类是干什么用的?
- 用JAVA语言怎样知道一个目录下的文件数目?
- 如何把对象转成字符串,再从字符串还原对象?
- xml是輿Java的关系?
我感觉还是这个方法好一点
{
public DemoPanel()
{
setFocusable(true);
addKeyListener(this);
}这样和你们说的一样吧,可还是不行
{
public DemoPanel()
{ setFocusable(true);
}
public void addKeyListener(KeyListener l) {
//在此实现它的接口
}
}
public void eventDispatched(AWTEvent e) {
if (e instanceof KeyEvent) {
KeyEvent key = (KeyEvent) e;
System.err.println(key.getComponent());
System.err.println(key.getSource());
System.err.println(key.getKeyChar());
}
}
}, AWTEvent.KEY_EVENT_MASK);
呵呵,大家可以试试上面的方法,可以监听一个JPanel中所有的KEY事件,如果想监听其它事件,如Focus,只要将AWTEvent.KEY_EVENT_MASK 改为 FOCUS_EVENT_MASK有兴趣的朋友可以进来讨论一个它的原理。