紧急求助!怎样捕获键盘上控制键的输入

时间:2021-02-19 00:31:59
我现在写个程序,想捕获到从键盘上输入的控制键的消息,例如"CTR + C",“TAB”等

等的消息,不知道改怎么实现,哪位高手指点下,紧急...

本人在线恭候指点.... 

12 个解决方案

#1


字符组合取值!

#2


好像用System.read()

#3


我也想取得组合的键盘事件
比如说当向上和向下键同时被按下
请高手们 帮帮忙!!!!

#4


能不能说具体点,我还是不明白阿
各位大虾,救命那!!!!!!!

#5


System类是Java语言中一个功能强大、非常有用的类,它提供了标准输入/输出及运行时的系统信息。从System类不能创建对象,也就是说,System类的所有属性和方法都是静态的,引用时要以System作为前缀。System.in与System.out是System类的两个静态属性,分别对应了系统的标准输入/输出流。

其中,System.in称为标准输入流,用于程序输入,通常读取用户从键盘输入的信息;System.out称为标准输出流,用于程序输出,通常向用户显示信息;System.err称为标准错误流,用于向用户显示出错信息。

当用户从键盘读入数据时,主要通过read()方法来实现。read()方法有三种使用格式:
read();       //从输入流读入一个字节
read(byte[ ]);   //把指定个数的字节数据读入到一个字节数组中
read(byte[ ],int off,int len)    //把len个字节的数据读入到一个字节数组中
一个程序在运行时通常要和外部设备交互,即从外部设备获取信息或向外部设备发送信息,这就是所谓的输入/输出(I/O)操作。在Java语言中,输入/输出都是通过流(Stream)来完成的,这样程序无论是要进行输入还是输出,只要针对流进行操作就可以了。

#6


我觉得不是这样的,可以用JAVA提供事件方法获得控制键,像回车键之类的就可以通过窗体的,keyPress()方法得到,其它也是一样的.

#7


用System.In等这些方法来读,都必须要回车才能读进来,对控制键还是没办法读的
楼上说的那个KeyPress()方法,能不能说具体点,我现在也就差JavaDOc去

#8


InpurMap

#9


还是不太明天
比如我现在做一个控制的小游戏
我希望我的小车在我按up 和 right的时候能向东北方向前进
怎么办啊

#10


当某个键被按下的时候,用一bool变量来反映,当要使用组合键时,根据bool值进行控制

#11


if (ke.getKeyCode() == ke.VK_CONTROL) {
            blnIsCtrl = true;
}
if (ke.getKeyCode() == ke.VK_LEFT) {
            if (blnIsCtrl) {
            //do
            }
}

#12


InputStreamReader inputStreamReader=new InputStreamReader(System.in);
char answer='\0';
while(!((answer=='q')||(answer=='Q')))
{
   try
         {
           answer=(char)inputStreamReader.read();
         }
         catch(IOException e)
         {
          }
}

#1


字符组合取值!

#2


好像用System.read()

#3


我也想取得组合的键盘事件
比如说当向上和向下键同时被按下
请高手们 帮帮忙!!!!

#4


能不能说具体点,我还是不明白阿
各位大虾,救命那!!!!!!!

#5


System类是Java语言中一个功能强大、非常有用的类,它提供了标准输入/输出及运行时的系统信息。从System类不能创建对象,也就是说,System类的所有属性和方法都是静态的,引用时要以System作为前缀。System.in与System.out是System类的两个静态属性,分别对应了系统的标准输入/输出流。

其中,System.in称为标准输入流,用于程序输入,通常读取用户从键盘输入的信息;System.out称为标准输出流,用于程序输出,通常向用户显示信息;System.err称为标准错误流,用于向用户显示出错信息。

当用户从键盘读入数据时,主要通过read()方法来实现。read()方法有三种使用格式:
read();       //从输入流读入一个字节
read(byte[ ]);   //把指定个数的字节数据读入到一个字节数组中
read(byte[ ],int off,int len)    //把len个字节的数据读入到一个字节数组中
一个程序在运行时通常要和外部设备交互,即从外部设备获取信息或向外部设备发送信息,这就是所谓的输入/输出(I/O)操作。在Java语言中,输入/输出都是通过流(Stream)来完成的,这样程序无论是要进行输入还是输出,只要针对流进行操作就可以了。

#6


我觉得不是这样的,可以用JAVA提供事件方法获得控制键,像回车键之类的就可以通过窗体的,keyPress()方法得到,其它也是一样的.

#7


用System.In等这些方法来读,都必须要回车才能读进来,对控制键还是没办法读的
楼上说的那个KeyPress()方法,能不能说具体点,我现在也就差JavaDOc去

#8


InpurMap

#9


还是不太明天
比如我现在做一个控制的小游戏
我希望我的小车在我按up 和 right的时候能向东北方向前进
怎么办啊

#10


当某个键被按下的时候,用一bool变量来反映,当要使用组合键时,根据bool值进行控制

#11


if (ke.getKeyCode() == ke.VK_CONTROL) {
            blnIsCtrl = true;
}
if (ke.getKeyCode() == ke.VK_LEFT) {
            if (blnIsCtrl) {
            //do
            }
}

#12


InputStreamReader inputStreamReader=new InputStreamReader(System.in);
char answer='\0';
while(!((answer=='q')||(answer=='Q')))
{
   try
         {
           answer=(char)inputStreamReader.read();
         }
         catch(IOException e)
         {
          }
}