Java 使用HashSet检查是否按下了键

Java 使用HashSet检查是否按下了键,java,keyboard,keypress,hashset,Java,Keyboard,Keypress,Hashset,我最近正在编写一个程序,该程序具有: public static Set<Character> pressed = new HashSet<Character>(); 现在如果我想做像这样的事情 pressed.contains(x); 如果x是键盘上的一个键,我会怎么做呢。我试过了 pressed.contains(KeyEvent.VK_UP); 但是,即使我按下向上箭头键,设置“按下”也不包含事件VK_up。我所需要知道的只是如何计算在.contains参数

我最近正在编写一个程序,该程序具有:

public static Set<Character> pressed = new HashSet<Character>();
现在如果我想做像这样的事情

pressed.contains(x);
如果x是键盘上的一个键,我会怎么做呢。我试过了

 pressed.contains(KeyEvent.VK_UP);
但是,即使我按下向上箭头键,设置“按下”也不包含事件VK_up。我所需要知道的只是如何计算在.contains参数中输入的内容,以检查它是否在按下的集合中。

您在哪里操作

public static Set<Character> pressed = new HashSet<Character>();
---
pressed.add(e.getKeyChar());
public static Set pressed=new HashSet();
---
添加(例如getKeyChar());
你应该做什么

public static Set<Integer> pressed = new HashSet<>();
...
pressed.add(e.getKeyCode());
                    ^^^^
public static Set pressed=new HashSet();
...
添加(例如getKeyCode());
^^^^
还要对remove代码进行类似的更改


按键代码是您正在比较的原始键盘代码,而不是指定给按键的字符(并非所有按键都指定了字符)。

我认为
KeyEvent.VK\u UP
表示整数,而不是字符,但可能我错了。不管怎样,为了最好的帮助,考虑创建和发布你的。
public static Set<Integer> pressed = new HashSet<>();
...
pressed.add(e.getKeyCode());
                    ^^^^