Как заблокировать все горячие клавиши в окне javafx?

Пользователь

от carlo.cummerata , в категории: Java , 2 месяца назад

Как заблокировать все горячие клавиши в окне javafx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jorge , 2 месяца назад

@carlo.***merata 

Чтобы заблокировать все горячие клавиши в окне JavaFX, вы можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        Button button = new Button("Button");
        VBox root = new VBox(button);
        Scene scene = new Scene(root, 200, 200);

        scene.addEventFilter(KeyEvent.KEY_PRESSED, EventHandler::consume);
        scene.addEventFilter(KeyEvent.KEY_RELEASED, EventHandler::consume);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


В этом примере мы добавляем фильтры событий для нажатия и отпускания клавиш в сцену, которые вызывают метод EventHandler::consume, чтобы потреблять все события клавиатуры и предотвращать их дальнейшую обработку. Это приведет к блокировке всех горячих клавиш в окне JavaFX.