TextArea多行文本
创建多行文本
TextArea textArea = new TextArea();
设置允许自动换行
textArea.setWrapText(true);
设置初始几行几列
textArea.setPrefRowCount(5); textArea.setPrefColumnCount(5);
设置宽高会导致设置初始几行几列无效
textArea.setPrefWidth(600); textArea.setPrefHeight(300);
添加文本
textArea.appendText("Hello World!\n");
删除索引从6开始到索引11(不包含)的字符
textArea.deleteText(6,11);
替换文本
textArea.replaceText(6,11,"JavaFx");
选中全部文本
textArea.selectAll();
选择光标后面一个字符
textArea.selectForward();
选中从索引为4的位置到光标位置的字符
textArea.selectPositionCaret(4);
获取文本长度
int length = textArea.getLength();
设置不可编辑
textArea.setEditable(false);
清空
textArea.clear();
文本变化监听事件
textArea.textProperty().addListener((observable, oldValue, newValue) -> { if (newValue.length() > 10) { textArea.setText(oldValue); return; } label.setText(newValue); });
选择的文本发生变化监听事件
textArea.selectedTextProperty().addListener((observable, oldValue, newValue) -> { System.out.println(newValue); });
左右滚动监听事件
textArea.scrollLeftProperty().addListener((observable, oldValue, newValue) -> { System.out.println(newValue); });