import java.awt.event.*;
import java.net.URL;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.*;
//游戏界面
public class w3{
public w3(){
JFrame j=new JFrame();
Container c=j.getContentPane();
/*
//游戏面板对象
w7 yxmb=new w7();
//添加游戏面板
for(int i=0;i<17;i++){
j.add(yxmb.a[i]);
}
*/
j.setSize(1000, 600);
j.setUndecorated(true);//窗体无边框
j.setDefaultCloseOperation(2);//窗体关闭方式
j.setLocationRelativeTo(null);//窗体居中
j.setResizable(false);//用户禁止拉伸窗体
j.setLayout(null);
j.setVisible(true);//窗体可见
j.requestFocus();
KeyboardFocusManager m=KeyboardFocusManager.getCurrentKeyboardFocusManager();
m.addKeyEventDispatcher(new YourDispatcher());
}//w3构造方法
//全局键盘监听
public class YourDispatcher implements KeyEventDispatcher{
w4 w1=new w4();//另一个窗体类
w5 w2=new w5();
boolean b1=true;//开关状态变量
boolean b2=true;
public boolean dispatchKeyEvent(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_ESCAPE:
//开关
if(b1){
w1.j.setVisible(true);
b1=false;
}else{
w1.j.setVisible(false);
b1=true;
}
break;
case KeyEvent.VK_I:
if(b2){
w2.j.setVisible(true);
b2=false;
}else{
w2.j.setVisible(false);
b2=true;
}
break;
}
/*
if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
if(b){
w.j.setVisible(true);
b=false;
}else{
w.j.setVisible(false);
b=true;
}
}*/
return true;
}
}
/*
public static void main(String[]args){
new w3();
}//主方法
*/
}
/*
public static void main(String[]args){
new w2();
}
*/
如上代码,键盘事件有反应但是会闪烁,该怎么才能让键盘按一下响应一会呢