JavaFX文字框、按鈕、列表框事件監聽處理
//文字框 TextField textField = new TextField(); //監聽文字框輸入值變化 textField.textProperty().addListener(this::textChange); private void textChange(ObservableValue<? extends String> observable, String oldValue, String newValue){ } //監聽文字框焦點變化 textField.focusedProperty().addListener(this::focusedChange); private void focusedChange(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue){ } //按鍵點選 textField.setOnKeyPressed(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent event) { if(event.getCode().equals(KeyCode.ENTER)){ } if(event.getCode().equals(KeyCode.UP) && (selectedIndex - 1) < stationNum){ //event.consume();可阻止原生事件進行,即文字框游標移動 } if(event.getCode().equals(KeyCode.DOWN) && (selectedIndex + 1) > -1){ } } });
//按鈕 Button btn = new Button("確定"); //點選 btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { } });
//列表框 ListView<String> listView = new ListView<String>(); listView.addEventHandler(MouseEvent.MOUSE_CLICKED, e ->{ //雙擊 if (e.getClickCount() == 2) { } //單擊 if (e.getClickCount() == 1) { } }); //按鍵 listView.addEventHandler(KeyEvent.KEY_PRESSED, e ->{ //回車 if (e.getCode() == KeyCode.ENTER) { } //上鍵 if(e.getCode().equals(KeyCode.UP)){ } //下鍵 if(e.getCode().equals(KeyCode.DOWN)){ } });