Запретить переход фокуса с элемента в javafx

102
28 января 2021, 08:00

У меня есть панель со слушателями кнопок, на ней рисуются графики функций. Мне нужно, чтобы при нажатии на стрелки клавиатуры, фокус оставался на этой панели и не переходил к другим элементам.

Answer 1

Может достаточно просто "подавить" события на нажатия этих кнопок:

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFX990084 extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("990084");
        TextField tf1 = new TextField();
        TextField tf2 = new TextField();
        Button btn = new Button();
        btn.setText("Start");
        // на примере текстового поля
        // перехватываем нажатия нужных клавиш
        tf1.addEventFilter(KeyEvent.ANY, new EventHandler<KeyEvent>() {
            public void handle(KeyEvent event) {
                if (event.getCode() == KeyCode.TAB
                        || event.getCode() == KeyCode.UP
                        || event.getCode() == KeyCode.DOWN
                        || event.getCode() == KeyCode.LEFT
                        || event.getCode() == KeyCode.RIGHT)
                    event.consume();
            }
        });
        VBox root = new VBox(16);
        root.getChildren().add(tf1);
        root.getChildren().add(tf2);
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}
READ ALSO
Не работает ajaxStop и ajaxStart для ajax запроса

Не работает ajaxStop и ajaxStart для ajax запроса

Суть такова: Есть ajax-запросПример:

100
Объекты для Vue.js

Объекты для Vue.js

Возникла потребность написать объект(класс) называйте как хотитечтобы от него наследовать другие экземпляры

117
Как сделать двойной редирект?

Как сделать двойной редирект?

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

141