Перенос строки в TextArea с помощью shift + enter

95
25 февраля 2021, 15:00

Пытаюсь сделать так, чтобы при нажатии на enter строка не переносилась, а при зажатом shift переносилась. Сделал boolean переменную, отвечающую за зажатый shift, это позволило мне добиться того, чтобы строка не переносилась, пока shift не зажат, но проблема в том, что по умолчанию в TextArea строка не переносится при зажатом shift. При попытке написать textArea.setText(textArea.getText()+"\n"), каретка переносится в самое начало, при попытке перенести её в конец, весь текст в TextArea выделяется.

Answer 1

Решил проблему таким образом:

boolean shiftPressed = false;
textArea.addEventFilter(KeyEvent.KEY_PRESSED, keyEvent -> {
    KeyCode keyCode = keyEvent.getCode();
    if(keyCode.equals(KeyCode.ENTER)) {
        if(!shiftPressed)
            method(); // метод, срабатывающий при нажатии enter без shift
        else
            textArea.insertText(textArea.getCaretPosition(),"\n");
        keyEvent.consume();
    } else if(keyCode.equals(KeyCode.SHIFT))
        shiftPressed = true;
});
textArea.setOnKeyReleased(event -> {
    if(event.getCode().equals(KeyCode.SHIFT))
        shiftPressed = false;
});
READ ALSO
StreamAPI и немного регулярного выражения

StreamAPI и немного регулярного выражения

Суть задачи: Получить из коллекции поток (Stream)Получить из потока коллекцию всех пользователей, имена которых не содержат чисел, вывести содержимое...

89
Быстрая организация работы с *.STL файлами в Java или C#

Быстрая организация работы с *.STL файлами в Java или C#

Подскажите какие-нибудь простые но эффективные технологии для считывания содержимого *STL файла, обработки этого содержимого и вывода на экран...

87
H2 db в SpringBoot не сохраняет данные

H2 db в SpringBoot не сохраняет данные

Как настроить H2 в Spring Boot для постоянного хранения данных?

120
Java Stream API: Разница между reduction и mutable reduction

Java Stream API: Разница между reduction и mutable reduction

Объясните пожалуйста разницу между reduction и mutable reductionВ документации Oracle описано, метод класса Stream reduce() это reduction, метод collect() -это mutable reduction

116