事情的經過是,今天在學習javafx的鍵盤事件后就模仿書上的代碼撰寫一個可以根據鍵盤的上下左右移動的文本,
但是后面發現毫無反應,最后測驗了發現只有鍵盤事件沒有反應。滑鼠點擊可以,按鈕Button的鍵盤事件沒有任何問題。
下面是測驗的代碼:
public class KeyEventDemo extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
//創建一個普通面板 和文本
Pane pane = new Pane();
Button button = new Button("確定");
Text text = new Text(100,100,"ff");
pane.getChildren().addAll(button,text);
button.setOnKeyPressed(event -> System.out.println("dd"));
text.setOnKeyTyped(event -> System.out.println("tt"));
text.setOnMouseClicked(event -> System.out.println("ee"));
//創建場景Scene,將面板放入,最后將場景放入主舞臺
Scene scene = new Scene(pane,200,200);
primaryStage.setScene(scene);
primaryStage.setTitle("cube");
primaryStage.show();
}
}
測驗操作:對著文本點擊了兩下,隨機按了3個鍵盤按鈕
測驗結果
ee
ee
dd
dd
dd
先說一下前提:書上說組件可以觸發一個事件,那么它的子類組件也具有同樣的效果。
最后重復一下問題,為何文本Text的物件的鍵盤事件無效?
uj5u.com熱心網友回復:
text是文本顯示,不是輸入,所以沒有鍵盤事件的處理轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52212.html
標籤:Java相關
上一篇:大佬們幫幫孩子吧
