Как назначить два действия на нажатие одной клавиши в Java?

Вы можете опустить фигурные скобки, когда тело лямбда является единственным выражением или вызовом метода void. Каждое выражение оценивает значение и, следовательно, не может быть пусто.

Если тело лямбда является блоком операторов (например, серия вычислений, за которой следует инструкция return), или лямбда имеет нет значения (т. е. имеет тип возврата void) и не является единственным вызовом метода void, вы должны использовать форму блока, для которой требуются скобки.

В блочном лямбда, если значение равно return ed, то все возможные пути кода должны либо return, либо throw a Throwable.

1
задан kentforth 17 January 2019 в 15:44
поделиться

1 ответ

В обработчике переключите состояние на основе текущего состояния. Другими словами, если непрозрачность равна 1.0, измените ее на 0.0 и наоборот.

mainAnchor.setOnKeyPressed(event -> {
    if (event.getCode() == KeyCode.DEAD_TILDE) {
        previewCard.setOpacity(previewCard.getOpacity() == 0.0 ? 1.0 : 0.0);
        event.consume();
    }
});

Когда вы переключаетесь между 0.0 и 1.0, вы можете использовать вместо этого свойство visible.

mainAnchor.setOnKeyPressed(event -> {
    if (event.getCode() == KeyCode.DEAD_TILDE) {
        previewCard.setVisible(!previewCard.isVisible());
        event.consume();
    }
});
0
ответ дан Slaw 17 January 2019 в 15:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: