2012-12-30 33 views
0

我碰到這樣的代碼:KeyEvent的常量在Java中

private boolean right = true; 
    public void keyPressed(KeyEvent e) { 

        int key = e.getKeyCode(); 

        if ((key == KeyEvent.VK_LEFT) && (!right)) { 
         left = true; 
         up = false; 
         down = false; 
        } 

    } 

從我的理解,所謂getKeyCode getter方法返回整數形式的關鍵。程序員是否必須理解KeyEvent.VK_LEFT的實際數值?或者我應該把它當作一個黑匣子來處理,而不是關心和擔心它是如何實現的並且只是使用它?

顯然,在查看Java API後,與VK_LEFT相關的值爲37。

+0

是的,你的問題的最後一部分:) – sjr

+1

_what是VK_LEFT有關這個實際整數值_你有沒有嘗試的System.out.println(「KeyEvent.VK_LEFT值:」 + KeyEvent.VK_LEFT ); ???? –

+0

啊,我其實沒想到!但我檢查了Java API,它說37. – Nicholas

回答

3

關於這些常量的觀點是,您不必知道實際的數值。您可以通過println輕鬆獲得,但您不應該(在未來版本中,您無法確保其價值不會發生變化)。

將它們視爲黑盒子。

+0

謝謝,我從來不知道我可以把關鍵常量當作一個黑盒子。我一直認爲這只是爲了方法。 – Nicholas

1

不用擔心任何鍵的關聯值。只需使用KeyEvent類的靜態變量。

public static final int VK_LEFT = 0x25; 
+0

什麼是0x25?一個十六進制?我檢查了Java API,它說常量是37.你怎麼發佈0x25? – Nicholas

+0

添加鏈接也只是點擊關鍵事件。 37十六進制爲十六進制表示 – vels4j

+0

我現在明白了,謝謝。 – Nicholas