2012-09-23 11 views
6

I ricerca in linea e non fornisce spiegazioni chiare sull'uso di e.consume() che viene spesso utilizzato in Java KeyEvent Handle. Come il codice seguente.Cosa fa l'uso di e.consume() in java

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

risposta

2

È un metodo della classe AWTEvent. È utilizzato per consumare l'evento this, se può essere consumato.

Hai controllato AWTEvent.consume()?

Inoltre, consultare How Does consume() Work? per informazioni su cosa consuma esattamente.

+0

Il consumo significa terminare questo evento? – user1456170

+0

No. Significa che l'evento non verrà ulteriormente inviato a ulteriori ascoltatori di eventi. –

+0

Sembra che io fossi appiccicoso con una semplice parola. Ora ho capito. Apprezzo per il replay di qualcuno. Soprattutto il tuo. – user1456170

2

sguardo al documentation: Il KeyEvent eredita consume metodo da InputEvent classe. Il metodo di consumo consuma questo evento in modo che lo non venga elaborato in modo predefinito dall'origine che lo ha originato.

5

Dal JavaDocs

Consuma questo evento in modo che non saranno trattati in modo predefinito dalla sorgente che ha originato.

In sostanza, ciò significa che non si desidera che l'evento venga inviato a ulteriori ascoltatori di eventi.

Se non ricordo male, gli eventi sono spediti in last in first out moda

2

Consumare funzione è responsabile per non dare esecuzione il codice KeyListeners durante alcuni specifici tipi di eventi accadono. Ad esempio: se voglio fare un textfield in java in modo che risponda solo quando le cifre vengono premute, allora posso usare il metodo di consumo per consumare (Non elaborare i keyjevents che non sono stati causati a causa della pressione di cifre) tali eventi .