JavaFX 控件 TextArea

TextArea

TextArea textArea = new TextArea();
textArea.setPrefColumnCount(20);
textArea.setPrefRowCount(30);
textArea.setPromptText("PromptText");
//自動換行
textArea.setWrapText(true);
textArea.setText("setText");//setText
textArea.appendText("appendText");//setTextappendText
textArea.insertText(7,"|");//setText|appendText
textArea.deleteText(3, 7);//set|appendText
textArea.replaceText(0, 3, "SET");//SET|appendText
//移動光標
textArea.positionCaret(3);
textArea.selectAll();

//輸入監聽
textArea.textProperty().addListener(new ChangeListener<String>() {
    @Override
    public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
        System.out.println("observable = " + observable + ", oldValue = " + oldValue + ", newValue = " + newValue);
    }
});
//選中監聽
textArea.selectedTextProperty().addListener(new ChangeListener<String>() {
    @Override
    public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
        System.out.println("observable = " + observable + ", oldValue = " + oldValue + ", newValue = " + newValue);
    }
});
//滾動監聽
textArea.scrollTopProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
        System.out.println("observable = " + observable + ", oldValue = " + oldValue + ", newValue = " + newValue);
    }
});

TextFormatter

TextField textField = new TextField();
//限制輸入字母和數字
textField.setTextFormatter(new TextFormatter<String>(new UnaryOperator<Change>() {
    @Override
    public Change apply(Change change) {
        if (change.getText().matches("[0-9a-zA-Z]")) {
            return change;
        }
        return null;
    }
}));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章