Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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
Java 滚动SWT滚动条_Java_Swt_Scrollbar_Styledtext - Fatal编程技术网

Java 滚动SWT滚动条

Java 滚动SWT滚动条,java,swt,scrollbar,styledtext,Java,Swt,Scrollbar,Styledtext,我有一个带滚动条的SWT样式的文本区域。我想滚动条滚动到一个给定的索引,但我遇到了一些困难 我试过: ScrollBar vBarScroll = styledText.getVerticalBar(); vBarScroll.setSelection(textIndex); styledText.showSelection(); 这会选择我不想要的文本,并且很难显示。它也经常四处走动 我试过的另一件事是: styledText.setTopIndex(textIndex); 但是这也不行试

我有一个带滚动条的SWT样式的文本区域。我想滚动条滚动到一个给定的索引,但我遇到了一些困难

我试过:

ScrollBar vBarScroll = styledText.getVerticalBar();
vBarScroll.setSelection(textIndex);
styledText.showSelection();
这会选择我不想要的文本,并且很难显示。它也经常四处走动

我试过的另一件事是:

styledText.setTopIndex(textIndex);
但是这也不行

试试这个:

lineNoIndex是线条的索引。 0->1号线1->2号线等

 if(lineNoIndex >= 0 && lineNoIndex < styledText.getLineCount()) {
       int offset = lineNoIndex == 0 ? 0:styledText.getOffsetAtLine(lineNoIndex) - 1;
       styledText.setCaretOffset(offset);
       styledText.setTopIndex(offset == 0 ? 0:lineNoIndex - 1);
 }
if(lineNoIndex>=0&&lineNoIndex
滚动条的单位是像素,而不是字符偏移量。
setTopIndex
的单位是行。如何防止styledText每次都将setTopIndex重置为0?不理解,请添加更多解释每次调用.setText方法时,.setTopIndex方法会自动被调用,值为0。我想知道如何阻止这种情况发生,因为它会导致该区域中的文本跳转,看起来很紧张。我摆脱了文本的跳转。如果禁用重画,设置文本和topIndex,然后再次启用重画,看起来会更平滑。如果您有更好的解决方案,我想听听您是否可以尝试调用styledText.append(),如果您想追加文本,还可以检查styledText的其他方法,这些方法可能会有帮助,或者发布完整的代码