java JWindow全屏窗口下 键盘监听
用JAVA来做游戏全屏窗口-JWindow怎么添加键盘监听,比如按下C键,显示人物属性...JFramefs=newJFrame();JWindowf=newJWindo...
用JAVA 来做游戏全屏窗口 - JWindow 怎么添加键盘监听, 比如按下C键 , 显示人物属性...
JFrame fs=new JFrame();
JWindow f=new JWindow(fs);
GraphicsDevice myDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode dm=myDevice.getDisplayMode();
int w=dm.getWidth();
int h=dm.getHeight();
f.setSize(w,h);
myDevice.setFullScreenWindow(f);
f.setLayout(null);
f.setVisible(true);
// == == 我的窗口代码如上 == 我不知道怎么添加键盘事件, this.addKeyListener(this); 这种事件在JWindow不起作用...
还有我发现这个JWindow窗口没有焦点一样, 点击屏幕按下键盘, 我发现焦点全在其它程序上, 比如"记事本"全都有我的按键....
怎么创建全屏窗口才有状态栏? 或者JWindow怎么才能监听到键盘事件??
class GO1 extends JWindow {
public static void main(String[] args)
{
new GO1();
}
JFrame fs=new JFrame();
JWindow f=new JWindow(fs);
JButton off=new JButton("off");
GO1(){
GraphicsDevice myDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode dm=myDevice.getDisplayMode();
int w=dm.getWidth();
int h=dm.getHeight();
f.setSize(w,h);
myDevice.setFullScreenWindow(f);
f.setLayout(null);
f.setVisible(true);
}//GO1
} 展开
JFrame fs=new JFrame();
JWindow f=new JWindow(fs);
GraphicsDevice myDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode dm=myDevice.getDisplayMode();
int w=dm.getWidth();
int h=dm.getHeight();
f.setSize(w,h);
myDevice.setFullScreenWindow(f);
f.setLayout(null);
f.setVisible(true);
// == == 我的窗口代码如上 == 我不知道怎么添加键盘事件, this.addKeyListener(this); 这种事件在JWindow不起作用...
还有我发现这个JWindow窗口没有焦点一样, 点击屏幕按下键盘, 我发现焦点全在其它程序上, 比如"记事本"全都有我的按键....
怎么创建全屏窗口才有状态栏? 或者JWindow怎么才能监听到键盘事件??
class GO1 extends JWindow {
public static void main(String[] args)
{
new GO1();
}
JFrame fs=new JFrame();
JWindow f=new JWindow(fs);
JButton off=new JButton("off");
GO1(){
GraphicsDevice myDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode dm=myDevice.getDisplayMode();
int w=dm.getWidth();
int h=dm.getHeight();
f.setSize(w,h);
myDevice.setFullScreenWindow(f);
f.setLayout(null);
f.setVisible(true);
}//GO1
} 展开
1个回答
展开全部
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()
{
@Override
public void eventDispatched(AWTEvent event)
{
if(event instanceof KeyEvent)
{
KeyEvent ke=(KeyEvent)event;
if(ke.getID()==KeyEvent.KEY_RELEASED/*键盘按下后释放时触发*/&&ke.getKeyCode()==KeyEvent.VK_ESCAPE/*你的键值KeyEvent.XXX*/)
{
/差游/你的处理方法在这,JWindow的引用.怎么样?
}
}
else if(event instanceof MouseEvent)
{
MouseEvent me=(MouseEvent)event;
if(me.getID()==MouseEvent.MOUSE_RELEASED/*鼠标按下后释放时触发*/)
{
//你的处理方法在这
}
}
//好些呢,想监听啥就监听啥
}
}, AWTEvent.MOUSE_EVENT_MASK+AWTEvent.MOUSE_MOTION_EVENT_MASK+AWTEvent.MOUSE_WHEEL_EVENT_MASK+AWTEvent.KEY_EVENT_MASK);
如果你的窗口隐藏了,还喊庆纤想监听,那可能需要JNA库郑仿的支持
{
@Override
public void eventDispatched(AWTEvent event)
{
if(event instanceof KeyEvent)
{
KeyEvent ke=(KeyEvent)event;
if(ke.getID()==KeyEvent.KEY_RELEASED/*键盘按下后释放时触发*/&&ke.getKeyCode()==KeyEvent.VK_ESCAPE/*你的键值KeyEvent.XXX*/)
{
/差游/你的处理方法在这,JWindow的引用.怎么样?
}
}
else if(event instanceof MouseEvent)
{
MouseEvent me=(MouseEvent)event;
if(me.getID()==MouseEvent.MOUSE_RELEASED/*鼠标按下后释放时触发*/)
{
//你的处理方法在这
}
}
//好些呢,想监听啥就监听啥
}
}, AWTEvent.MOUSE_EVENT_MASK+AWTEvent.MOUSE_MOTION_EVENT_MASK+AWTEvent.MOUSE_WHEEL_EVENT_MASK+AWTEvent.KEY_EVENT_MASK);
如果你的窗口隐藏了,还喊庆纤想监听,那可能需要JNA库郑仿的支持
更多追问追答
追问
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()
第一行往哪添加啊~??? 还是直接写上??? 我的代码 f = JWindow , f.add( Toolkit.... )???
错误: 无法将类 Toolkit中的方法 addAWTEventListener应用到给定类型;
追答
JWindow f=new JWindow(fs);
//你可以在这里加入我给你的代码
GraphicsDevice myDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询