Java KeyListener-如何检测是否按下了任何键?
我在文本区域中添加了一个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...){
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是危险的。