日期:2014-05-20  浏览次数:20707 次

JEditorPane中跳转到包含指定字符串的行
左侧是一个树面板
右侧是JEditorPane中显示的是.c的代码文件
.c文件中很多函数
例如左侧的叶节点的名称即函数的名称,例如分别是:
suit_test_code_001
suit_test_code_PA_02
suit_mau_test_am_01
……
我希望点击叶节点(即函数名称)的时候,右侧的显示正好跳转到该函数的首行上


------解决方案--------------------
用这个方法试试

public void setSelectionStart(int selectionStart)
将选定起始点设置为指定的位置。新的起始点将限制在当前选定的结束点或之前。

生成页面时,将各方法的起始行找到,存在左则树结点内,点树结点的时候,把对方起始行位置读出,传给setSelectionStart方法.
------解决方案--------------------
2楼的方法看不懂啊~~~有木有更详细点的?
------解决方案--------------------
补充图:例如我点击节点:suit_am_announce_device_MCN_OR_GN_01
然后右侧的内容显示就跳转到包含该行内容的代码上:
------解决方案--------------------
没有人回复,自己解决了。
             String text=rightEditorPane.getText();//获得整个文本内容
          int fromIndex=rightEditorPane.getCaretPosition();//取得当前的光标位置
          int firstIndex=text.indexOf(nodeName);
          rightEditorPane.setCaretPosition(firstIndex);
          rightEditorPane.moveCaretPosition(firstIndex+nodeName.length());//使查找到的子字符串显示出来