package application; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.input.KeyCode; import javafx.scene.layout.BorderPane; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { WebView webView = new WebView(); WebEngine webEngine = webView.getEngine(); webEngine.setJavaScriptEnabled(true); webEngine.load("http://localhost:8080/SnakeGame/script.jsp"); BorderPane root = new BorderPane(); root.setCenter(webView); Scene scene = new Scene(root, 800, 600); // 웹 페이지가 포커스를 받을 수 있도록 설정 webView.requestFocus(); // 키 이벤트 처리 scene.setOnKeyPressed(event -> { KeyCode keyCode = event.getCode(); String direction = ""; switch (keyCode) { case UP: direction = "Up"; break; case DOWN: direction = "Down"; break; case LEFT: direction = "Left"; break; case RIGHT: direction = "Right"; break; default: return; } webEngine.executeScript("snake.changeDirection('" + direction + "');"); event.consume(); // 기본 스크롤 방지 }); primaryStage.setScene(scene); primaryStage.setTitle("SnakeGame"); primaryStage.show(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } 코딩 완전 초보라서 질문을 남깁니다. 현 코드에서 jsp랑 연결하여 javafx로 실행은 됐는데 실행시 키보드 입력 스크롤 움직임이 기본으로 되더라구요..어떻게 처리해야할까요?
92
1
0
무린·2024-08-17
코드에서 키보드 입력 시 기본 스크롤 움직임이 발생하는 문제를 해결하기 위해서는, JavaFX의 WebView가 키 이벤트를 처리할 수 있도록 포커스를 유지하고, 키 입력 시 스크롤이 발생하지 않도록 설정해야 합니다. 현재 코드에서는 이미 event.consume();를 사용하여 키 이벤트를 소비하고 기본 스크롤 동작을 방지하려고 하고 있습니다. 그...