2012-10-02 76 views
-2

我试图做一些自定义的键绑定。 如果按下整数,则使用散列表发送命令。我有 问题是Java HashMap KeyEvent

  1. []
  2. 做命令其发送指令多发时期。

代码:

for (String key : CustomKeys.keySet()) { 
    Integer value = CustomKeys.get(key); 
    if (keyIsPressed(value)) { 
     print(CustomKeys.keySet().toString()); 
     break; //Tried to break it so it didnt send it mutiple times. didnt work 
    } 
} 
+0

你可以更清楚.. – PermGenError

+0

如果一个键被按下。密钥是一个哈希映射中的整数。发送hashmap中的字符串。它这样做。但它会多次。 aswell在字符串周围打印[] –

+0

如果按下哈希映射表,是否要打印该键? – PermGenError

回答

0

如果我正确理解你的问题,你想打印键(串在你的地图),当pressed.If您使用断点值(在地图中值),遇到它时它会从循环中退出。 如果你想检查地图中的重复值做这样的事情。

public static HashMap<String, Integer> CustomKeys = new HashMap<String, Integer>(); 
public HashSet<Integer> hs = new HashSet<>(); 
for (String key : CustomKeys.keySet()) { 
     Integer value = CustomKeys.get(key); 

     if(keyIsPressed(value)) { 
      if(!hs.contains(value)) { 
      hs.add(value); 
      print(CustomKeys.keySet().toString()); 
} 
else { 
sysout("duplicate"); 
} 
     } 
    } 
+0

谢谢,但我修好了。这是一个重大的错误,它与我所有的自定义键无关。所以它打印了x次的数量x bering没有自定义键值 –

0

很明显,您的哈希映射中有重复的值,无论这是什么。

+0

重复值.. :)没有键.. :) – PermGenError

+0

static { \t \t CustomKeys.put(“Yes”,Keyboard.KEY_RSHIFT); \t}很确定它只是有一次 –

+0

@ chaitanya10这就是我所说的。你的观点? – EJP