Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX:TextArea光标移回新文本的第一行_Java_Javafx_Cursor_Textarea - Fatal编程技术网

JavaFX:TextArea光标移回新文本的第一行

JavaFX:TextArea光标移回新文本的第一行,java,javafx,cursor,textarea,Java,Javafx,Cursor,Textarea,我很难使用TextArea的光标,在向TextArea添加新文本后,它一直被设置在第一行的位置0 问题背景 我有一个Textarea,当我添加足够的文本时,会出现一个滚动条,将新文本置于旧文本下方。但是,在这里一切正常之前,TextArea中的光标会回到顶部,当我频繁插入TextArea时,这会变得很烦人 下面是我每次添加新行的方式: void writeLog(String str) { textArea.setText(textArea.getText() + str + "\n")

我很难使用
TextArea
的光标,在向
TextArea
添加新文本后,它一直被设置在第一行的位置0

问题背景

我有一个
Textarea
,当我添加足够的文本时,会出现一个滚动条,将新文本置于旧文本下方。但是,在这里一切正常之前,
TextArea
中的光标会回到顶部,当我频繁插入
TextArea
时,这会变得很烦人

下面是我每次添加新行的方式:

void writeLog(String str) {
    textArea.setText(textArea.getText() + str + "\n");
}

如何在每次插入后阻止
文本区域中的光标返回第一行

如果要附加到
文本区域的末尾,可以使用而不是
setText

textArea.appendText(str + "\n");
这将自动滚动到底部,并将插入符号置于文本末尾


注意:一点背景


TextInputControl
的代码中,
appendText
将调用
insertText
作为
insertText(getLength(),text)因此
textArea.appendText(str+“\n”)
textArea.insertText(textArea.getLength(),str+“\n”)是相等的
insertText
将插入符号位置设置为
insertationPosition+insertedText.getLength()
,这就是插入符号移到末尾的原因。

如果要附加到
TextArea
的末尾,可以使用而不是
setText

textArea.appendText(str + "\n");
这将自动滚动到底部,并将插入符号置于文本末尾


注意:一点背景


TextInputControl
的代码中,
appendText
将调用
insertText
作为
insertText(getLength(),text)因此
textArea.appendText(str+“\n”)
textArea.insertText(textArea.getLength(),str+“\n”)是相等的
insertText
将插入符号位置设置为
insertationPosition+insertedText.getLength()
,这就是插入符号移到末尾的原因。

我也遇到了同样的问题,我得到了解决方案。我正在编写一个记事本,在这里我必须打开文本文件,点击“打开”菜单项。在另一个函数中,我编写了代码

@FXML
private void openaFile(ActionEvent event) throws FileNotFoundException, IOException {
    Stage window=new Stage();
    FileChooser fc=new FileChooser();
    File sf=fc.showOpenDialog(window);
    if(sf!=null){
               FileReader fr=new FileReader(sf);
               Scanner sc=new Scanner(fr);

               while(sc.hasNext()){
                         text.appendText(sc.next());
                         text.appendText("\n");
              }  
    }

}我也有同样的问题,我得到了解决方案。我正在编写一个记事本,在这里我必须打开文本文件,点击“打开”菜单项。在另一个函数中,我编写了代码

@FXML
private void openaFile(ActionEvent event) throws FileNotFoundException, IOException {
    Stage window=new Stage();
    FileChooser fc=new FileChooser();
    File sf=fc.showOpenDialog(window);
    if(sf!=null){
               FileReader fr=new FileReader(sf);
               Scanner sc=new Scanner(fr);

               while(sc.hasNext()){
                         text.appendText(sc.next());
                         text.appendText("\n");
              }  
    }

}

试用此解决方案:试用此解决方案:这不是约会网站;)或者换言之-没有地方联系,所以删除了链接。答案是:与公认的答案相比,没有什么,是吗?问题中没有任何内容与读取文件有关(无论如何,这很可能应该在后台线程中完成)。这不是一个约会网站;)或者换言之-没有地方联系,所以删除了链接。答案是:与公认的答案相比,没有什么,是吗?问题中没有任何与读取文件相关的内容(无论如何,这很可能应该在后台线程中完成)。这对我不起作用。这与我调用setText没有什么不同。(JavaFX 15)这对我不起作用。这与我调用setText没有什么不同。(JavaFX15)