如何将字符串变量转换为KeyEvent - 一般方法

时间:2014-12-13 10:35:57

标签: java

我对Java很陌生,我有一个问题困扰了我好几天。

我正在建立一个小应用程序,你按下键盘上的某个键,然后它做了一些事情。一般来说 - 它会打鼓

这是一个例子。

private void KeyListener(java.awt.event.KeyEvent evt)         

switch (evt.getKeyCode()) {
    case KeyEvent.VK_Q: new AePlayWave("kits/acoustic/Bass.wav").start();;
         break;

    case KeyEvent.VK_W: new AePlayWave("kits/acoustic/Bass.wav").start();;
         break; 
}

这很清楚。你按Q键然后你得到低音鼓踢。我只是复制了部分代码,还有更多元素,如小军鼓,钹等。

我构建了CONFIGURE KEYS选项,它接受字符串并将它们传递给组合框。我已经创建了包含键盘上所有字母的组合框,因此如果默认设置不适合他/她,用户可以更改布局。

我有一个带变量的公共类:

Public static SnareKey1 = "Q";

当您更改组合框时,SnareKey1会更改为让我们说 - Y(或其他)。这工作但是----

我的问题是:如何将此SnareKey1转移到KeyEvent。我是用正确的方法做到这一点还是需要一个不同的方法?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题!

你不能在CASE中使用变量(switch语句)。你需要不断表达。

我已用IF / ELSE声明解决了这个问题。

基本上,我将KeyListener添加到主窗体并编写了IF evt.keycode = snareKey.hashcode然后播放声音。