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);  
    });