2012-09-23 29 views
6

Przeszukuję online i nie otrzymuję jasnych wyjaśnień na temat użycia e.consume(), który jest często używany w java KeyEvent Handle.Co to jest użycie e.consume() w java

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

Odpowiedz

2

Jest to metoda z klasy AWTEvent. Jest używany w celu konsumowania zdarzenia this, jeśli może zostać zużyty.

Czy sprawdziłeś numer AWTEvent.consume()?

Ponadto, spójrz na How Does consume() Work?, aby uzyskać wyjaśnienie, co dokładnie konsumuje.

+0

Czy konsumpcja oznacza zakończenie tego wydarzenia? – user1456170

+0

Nie. Oznacza to, że zdarzenie nie będzie dalej wysyłane do żadnych dalszych detektorów zdarzeń. –

+0

Wygląda na to, że byłam lepka przez proste słowo. Teraz to rozumiem. Zastanów się, czy ktoś nie powtórzy. Zwłaszcza twój. – user1456170

2

Spójrz na documentation: KeyEvent dziedziczy po consume z klasy InputEvent. Metoda zużywa zużywa to zdarzenie, aby nie zostało przetworzone w sposób domyślny przez źródło, z którego pochodzi.

5

Z JavaDocs

Zużywa to wydarzenie tak, że nie będą przetwarzane w sposób domyślny przez źródła, które to powstały.

Zasadniczo oznacza to, że nie chcesz, aby wydarzenie było wysyłane do jakichkolwiek dalszych detektorów zdarzeń.

Jeśli dobrze pamiętam, zdarzenia są wywoływane w ostatnim w pierwszym z modą

2

Spożywać funkcja nie jest odpowiedzialny za przetwarzanie kodu KeyListeners podczas jakiegoś określonego rodzaju imprezy stało. Na przykład: Jeśli chcę ustawić textfield w java tak, że będzie on reagował tylko na naciśnięcie cyfr, wtedy mogę użyć metody konsumowania do konsumpcji (Nie przetwarzaj kluczowych zdarzeń, które nie zostały spowodowane przez naciśnięcie cyfr) takich zdarzeń .