2012-09-23 93 views
6

我在網上搜索,並沒有得到關於e.consume()的使用的明確說明,這是java KeyEvent Handle中經常使用的。就像下面的代碼一樣。在java中使用e.consume()有什麼用

public void keyTyped(KeyEvent e) { 
    char c = e.getKeyChar(); 
    if (c != KeyEvent.CHAR_UNDEFINED) { 
     s = s + c; 
     repaint(); 
     e.consume(); 
    } 
} 

回答

2

這是一種AWTEvent類的方法。它用於消耗this事件,如果它可以消耗。

您是否檢查AWTEvent.consume()

此外,請查看How Does consume() Work?以瞭解有關完全消耗的具體解釋。

+0

消耗是否意味着結束此事件? – user1456170

+0

否。這意味着該事件不會再發送給任何其他事件偵聽器。 –

+0

看起來我被一個簡單的單詞粘住了。現在我明白了。讚賞任何人的重播。尤其是你的。 – user1456170

2

看看documentationKeyEvent繼承consume方法從InputEvent類。消耗方法消耗此事件,以便不會由源自其的源以默認方式處理

5

JavaDocs

消耗該事件,使得它不會被在默認 方式由產生它的源代碼來處理。

實質上,它意味着您不希望將事件分派給任何其他事件偵聽器。

如果我沒有記錯,事件的調度是後進先出的方式

2

消費函數負責一些特定種類的事件發生時不處理KeyListeners代碼。例如:如果我想在java中創建一個textfield,以便它只在按下數字時纔會響應,那麼我可以使用消耗方法來消耗(不處理由於按下數字而未引起的鍵事件)這樣的事件。

相關問題