Java 将插入符号位置设置为文本控件中的特定行
我有一个输入屏幕,用户在其中输入SWT文本控件。当用户输入文本时,我会对其进行处理,并将其显示在一个单独的只读结果文本控件中。结果文本的长度可能比输入文本长几个字符 我想定位结果文本控件显示,以便它始终显示用户当前在输入控件中键入的行 我可以使用Java 将插入符号位置设置为文本控件中的特定行,java,swt,Java,Swt,我有一个输入屏幕,用户在其中输入SWT文本控件。当用户输入文本时,我会对其进行处理,并将其显示在一个单独的只读结果文本控件中。结果文本的长度可能比输入文本长几个字符 我想定位结果文本控件显示,以便它始终显示用户当前在输入控件中键入的行 我可以使用ivTextInput.getCaretLineNumber()获取输入插入符号行,但是没有相应的方法来设置插入符号行号 我可以使用ivTextResult.setSelection(ivTextInput.getCaretPosition())设置插入
ivTextInput.getCaretLineNumber()
获取输入插入符号行,但是没有相应的方法来设置插入符号行号
我可以使用ivTextResult.setSelection(ivTextInput.getCaretPosition())
设置插入符号在结果中的位置,但是我对输入文本所做的处理可能会将结果文本“推”到不滚动就看不见的位置
理想情况下,结果文本显示将与输入文本显示相结合,以便用户键入的内容/位置始终与结果文本对齐
我已经尝试跟踪处理添加的额外字符,但是用户可以在文本控件中的任何位置添加文本,并且产生的混乱是不可用的,另外,SWT文本控件处理新行的方式会导致计算失败。
text
有一个setTopIndex
方法来设置控件顶部可见的行:
public void setTopIndex(int index)
Text
有一个setTopIndex
方法来设置控件顶部可见的行:
public void setTopIndex(int index)
可能是使用
Text.setTopIndex
将行设置在topArgh!我没有看到这一点,而且也不会将其与设置直线位置联系起来。谢谢我将其设置为ivTextResult.setTopIndex(ivTextInput.getCaretLineNumber()-1)
,这非常有效,可能需要使用Text.setTopIndex
将行设置在topArgh!我没有看到这一点,而且也不会将其与设置直线位置联系起来。谢谢我将其设置为ivTextResult.setTopIndex(ivTextInput.getCaretLineNumber()-1)
,效果非常好,是的。根据对问题的评论,在你回答之前12小时发布。因为它做了你想要的。我将此作为答案发布,以便在进行搜索(stackoverflow、Google等)时帮助其他人,该搜索是否不包括问题文本,从而将此人引导到此处?他们会在评论中看到解决方案在哪里?我不想表现得尖刻,我只是希望它能这样工作,因此不需要“回答”。评论不是永久性的,它们可能会被删除。人们寻找有答案的问题。嗯,是的。根据对问题的评论,在你回答之前12小时发布。因为它做了你想要的。我将此作为答案发布,以便在进行搜索(stackoverflow、Google等)时帮助其他人,该搜索是否不包括问题文本,从而将此人引导到此处?他们会在评论中看到解决方案在哪里?我不想表现得尖刻,我只是希望它能这样工作,因此不需要“回答”。评论不是永久性的,它们可能会被删除。人们寻找有答案的问题。