用ActionMap/InputMap添加JPanel上的键盘事件问题

yingxiao1918 2009-02-17 10:50:25
下面的代码,我是想实验一下。但为什么捕捉键盘的事件出不来呢?
这样捕捉键盘事件是正确的么?谢谢了!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SplashScreen2 extends JWindow {
private int duration;

public SplashScreen2() {
}

public void showSplash() {
JPanel content = (JPanel)getContentPane();
content.setBackground(Color.white);

//close the window when dragging
content.addMouseMotionListener(new MouseAdapter(){
public void mouseDragged(MouseEvent e){
System.out.println(e);
System.exit(0);
}
});
//show the clicked info
content.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
System.out.println(e);
}
});

//show the key event info
KeyStroke theEnter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,java.awt.event.InputEvent.SHIFT_DOWN_MASK,false);
ActionMap contentActionMap = content.getActionMap();
InputMap contentInputMap = content.getInputMap();
contentInputMap.put(theEnter,"Kind_of_Input");
contentActionMap.put("Kind_of_Input",new AbstractAction(){
public void actionPerformed(ActionEvent e){
System.out.println(e);
}
});


setBounds(500,500,400,200);
setVisible(true);
}

public static void main(String[] args) {
SplashScreen2 splash = new SplashScreen2();
splash.showSplash( );
}
}

各位前辈,帮小弟看看了!
...全文
296 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
crf823130274 2012-02-13
  • 打赏
  • 举报
回复
貌似在setVisible(true); 下加这句content.requestFocusInWindow();
小园子_plin 2011-10-08
  • 打赏
  • 举报
回复
我也想知道原因????????????
哪位高手解一下!!!!
yingxiao1918 2009-02-18
  • 打赏
  • 举报
回复
怎么没人理我啊~~

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧