public interface EventPattern<T extends javafx.event.Event,U extends T>
EventTypes (e.g. the "case" line in a powerful switch
statement). When match(Event) returns a non-empty Optional, the corresponding
InputHandler will be called.
This class provides a number of static factory methods that provide the base pattern to match.
keyPressed(), keyTyped(),
mousePressed(), mouseClicked(), mouseDragged(), etc.
InputEvent.ANY), one
will use the base pattern, eventType(EventType)
Once a base pattern is created, one can further define the pattern for which to match for by
adding what are known as "guards" in pattern matching: andThen(EventPattern),
onlyIf(Predicate), unless(Predicate), and anyOf(EventPattern[]). See each
method's javadoc for more info.
// a pattern that matches any key pressed event
keyPressed()
// a pattern that matches only key pressed events where the user
// pressed a digit key
keyPressed().onlyIf(pressedKey -> pressedKey.getCode().isDigitKey())
| Modifier and Type | Method and Description |
|---|---|
default <V extends U> |
andThen(EventPattern<? super U,V> next)
Returns an EventPattern that matches the given event type only when this event pattern matches it
and the
next EventPattern matches it. |
static <T extends javafx.event.Event,U extends T> |
anyOf(EventPattern<T,? extends U>... events)
Returns an EventPattern that matches the given event type when any of the given EventPatterns match the
given event type; useful when one wants to specify the same behavior for a variety of events (i.e.
|
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
dragDetected() |
static <T extends javafx.event.Event> |
eventType(javafx.event.EventType<? extends T> eventType) |
java.util.Set<javafx.event.EventType<? extends U>> |
getEventTypes() |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyPressed() |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyPressed(javafx.scene.input.KeyCode code,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyPressed(javafx.scene.input.KeyCombination combination) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyPressed(java.util.function.Predicate<javafx.scene.input.KeyCode> keyTest,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyPressed(java.lang.String character,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyReleased() |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyReleased(javafx.scene.input.KeyCode code,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyReleased(javafx.scene.input.KeyCombination combination) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyReleased(java.util.function.Predicate<javafx.scene.input.KeyCode> keyTest,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyReleased(java.lang.String character,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyTyped() |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyTyped(java.util.function.Predicate<java.lang.String> charTest,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> |
keyTyped(java.lang.String character,
javafx.scene.input.KeyCombination.Modifier... modifiers) |
java.util.Optional<? extends U> |
match(T event)
Returns a non-empty
Optional when a match is found. |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseClicked() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseClicked(javafx.scene.input.MouseButton button) |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseDragged() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseEntered() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseEnteredTarget() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseExited() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseExitedTarget() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseMoved() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mousePressed() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mousePressed(javafx.scene.input.MouseButton button) |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseReleased() |
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> |
mouseReleased(javafx.scene.input.MouseButton button) |
default EventPattern<T,U> |
onlyIf(java.util.function.Predicate<? super U> condition)
Returns an EventPattern that matches the given event type only if this event pattern matches it
and the event type passed the given
condition |
default EventPattern<T,U> |
unless(java.util.function.Predicate<? super U> condition)
Returns an EventPattern that matches the given event type only if this event pattern matches it
and the event type fails the given
condition |
java.util.Optional<? extends U> match(T event)
Optional when a match is found.java.util.Set<javafx.event.EventType<? extends U>> getEventTypes()
default <V extends U> EventPattern<T,V> andThen(EventPattern<? super U,V> next)
next EventPattern matches it.default EventPattern<T,U> onlyIf(java.util.function.Predicate<? super U> condition)
conditiondefault EventPattern<T,U> unless(java.util.function.Predicate<? super U> condition)
condition@SafeVarargs static <T extends javafx.event.Event,U extends T> EventPattern<T,U> anyOf(EventPattern<T,? extends U>... events)
static <T extends javafx.event.Event> EventPattern<javafx.event.Event,T> eventType(javafx.event.EventType<? extends T> eventType)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyPressed()
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyPressed(javafx.scene.input.KeyCombination combination)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyPressed(javafx.scene.input.KeyCode code, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyPressed(java.util.function.Predicate<javafx.scene.input.KeyCode> keyTest, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyPressed(java.lang.String character, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyReleased()
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyReleased(javafx.scene.input.KeyCombination combination)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyReleased(javafx.scene.input.KeyCode code, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyReleased(java.util.function.Predicate<javafx.scene.input.KeyCode> keyTest, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyReleased(java.lang.String character, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyTyped()
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyTyped(java.util.function.Predicate<java.lang.String> charTest, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.KeyEvent> keyTyped(java.lang.String character, javafx.scene.input.KeyCombination.Modifier... modifiers)
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseClicked()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseClicked(javafx.scene.input.MouseButton button)
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mousePressed()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mousePressed(javafx.scene.input.MouseButton button)
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseReleased()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseReleased(javafx.scene.input.MouseButton button)
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseMoved()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseDragged()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> dragDetected()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseEntered()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseEnteredTarget()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseExited()
static EventPattern<javafx.event.Event,javafx.scene.input.MouseEvent> mouseExitedTarget()