Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java KeyListener-如何检测是否按下了任何键?_Java_Key_Keyevent_Any_Pressed - Fatal编程技术网

Java KeyListener-如何检测是否按下了任何键?

Java KeyListener-如何检测是否按下了任何键?,java,key,keyevent,any,pressed,Java,Key,Keyevent,Any,Pressed,我在文本区域中添加了一个KeyListener,希望检查是否按下了任何键。 我有以下内容,但检查所有字母和数字太笨拙了: public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_A || e.getKeyCode() == KeyEvent.VK_B || e.getKeyCode() == KeyEvent.VK_C ||e.getKeyCode() == KeyEvent.VK_D etc...){

我在文本区域中添加了一个KeyListener,希望检查是否按下了任何键。 我有以下内容,但检查所有字母和数字太笨拙了:

public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_A || e.getKeyCode() == KeyEvent.VK_B || 
e.getKeyCode() == KeyEvent.VK_C ||e.getKeyCode() == KeyEvent.VK_D etc...){  

    }   
}

你不需要任何if语句。每当按下一个键时,
keyPressed
方法就会被触发,因此您将自动进入该方法。

您不需要任何if语句。每当按下某个键时,
keyPressed
方法就会被触发,因此您会自动进入该方法。

创建相应键事件的列表,并检查该列表是否包含这些事件

List keyEvents = new ArrayList<KeyEvent>();
keyEvents.add(KeyEvent.VK_A);
keyEvents.add(KeyEvent.VK_B);
keyEvents.add(KeyEvent.VK_C);
keyEvents.add(KeyEvent.VK_D);

public void keyPressed(KeyEvent e) {
if(keyEvents.contains(e.getKeyCode())){  

    }   
}
List keyEvents=new ArrayList();
添加(KeyEvent.VK_A);
添加(KeyEvent.VK_B);
添加(KeyEvent.VK_C);
添加(KeyEvent.VK_D);
按下公共无效键(按键事件e){
if(keyEvents.contains(e.getKeyCode()){
}   
}

创建相应关键事件的列表,并检查该列表是否包含这些事件

List keyEvents = new ArrayList<KeyEvent>();
keyEvents.add(KeyEvent.VK_A);
keyEvents.add(KeyEvent.VK_B);
keyEvents.add(KeyEvent.VK_C);
keyEvents.add(KeyEvent.VK_D);

public void keyPressed(KeyEvent e) {
if(keyEvents.contains(e.getKeyCode())){  

    }   
}
List keyEvents=new ArrayList();
添加(KeyEvent.VK_A);
添加(KeyEvent.VK_B);
添加(KeyEvent.VK_C);
添加(KeyEvent.VK_D);
按下公共无效键(按键事件e){
if(keyEvents.contains(e.getKeyCode()){
}   
}

我认为您可以使用
KeyEvent.getKeyChar()或KeyEvent.getKeyCode()
方法,该方法将返回按下键的字符值/代码

对于字母数字A-Z,A-Z,0-9

int key= KeyEvent.getKeyCode();

if((((key>=65)&&(key<=90))||((key>=97)&&(key<=122))||((key>=48)&&(key<=57)))
{
//Do action
}
int key=KeyEvent.getKeyCode();

如果(((key>=65)&&&(key=97)&&(key=48)&(key我认为您可以使用
KeyEvent.getKeyChar()或KeyEvent.getKeyCode()
方法,该方法将返回按下键的字符值/代码

对于字母数字A-Z,A-Z,0-9

int key= KeyEvent.getKeyCode();

if((((key>=65)&&(key<=90))||((key>=97)&&(key<=122))||((key>=48)&&(key<=57)))
{
//Do action
}
int key=KeyEvent.getKeyCode();

如果(((键>=65)和&(键=97)和&(键=48)&&(键我相信他在一些特定的按键事件上有一些动作要执行。不,实际上这个动作不是特定于按键的。非常感谢你,四面楚歌的Swag。@EfeEsenwa没问题。如果我的回答有帮助,你应该接受它,这样其他人可以看到它。你可以通过点击复选框来完成。最好不要建议在键盘上使用按键侦听器JTextArea或任何文本组件。这是您给出的危险建议。这可能无法在所有平台上,甚至在不同版本的JVM下可靠地工作-只是说…我相信他在某些特定的按键事件上需要执行某些操作。不,实际上该操作不是特定于按键的。非常感谢,四面楚歌。@EfeEsenwa没问题。如果我的答案有帮助,你应该接受它,这样其他人可以看到它。你可以通过单击复选框来实现。最好不要建议在JTextArea或任何文本组件上使用KeyListener。这是一个危险的建议。这可能无法在所有平台上,甚至在不同版本的JVM下可靠地工作-只是说…注意,文本组件可能会使用鼠标事件,这使得它不可靠,通常情况下,当文本组件发生更改时,您会使用DocumentListener收到通知,如果您想过滤输入的内容,则使用DocumentFilter。谢谢。我以前从未使用过DocumentListener,我可能会使用它。我支持@Mad程序员的建议。在文本组件上使用KeyListener是危险的。请注意,文本组件可能会使用鼠标事件,这使得它不可靠,通常情况下,当文本组件发生更改时,您会使用DocumentListener收到通知,或者如果您想过滤输入的内容,则使用DocumentFilter。谢谢。我不知道如果以前使用过DocumentListener,我可能会改用它。我支持@MadProgrammer的建议。在文本组件上使用KeyListener是危险的。