2013-06-12 24 views
0

我是新来的java,开始一个项目7天前,今天与这个地方的一些人我成功地通过一个问题,但仍然有一个更多...选择索引是不相同的getText索引

在最后一个问题,我需要搜索一个字符串,并强调它,但现在,我的问题是:

为什么选择指数不相同的,以我寻找一些未知字符,我不知道我的自我后的指标:|

这是我的按钮代码:

int startFrom = jEditorPane1.getSelectionStart(); 
    if(jEditorPane1.getSelectionStart() == jEditorPane1.getSelectionEnd()){ 
     startFrom = -1; 
    } 

    String searchWord = jTextField3.getText(); 
    int searchIndex = jEditorPane1.getText().indexOf(searchWord, startFrom + 1); 
    if(searchIndex != -1){ 
     jEditorPane1.requestFocusInWindow(); 
     jEditorPane1.select(searchIndex, searchIndex+searchWord.length()); 
    } 
    else{ 
     jEditorPane1.setSelectionStart(0); 
     jEditorPane1.setSelectionEnd(0); 
    } 

,我敢肯定,我需要做一些字符串处理,将字符串转换指标摆动的JEditorPane/JTextPane的指数

例如: 我像这样在字符串中搜索: “嘿, 你好吗?”

它用这种方式突出显示: “嘿, 你怎么样做o

这意味着它开始一个索引forther什么应该和在这里它的\ n casue逃逸字符,我不知道,造成一段时间它在单行文本发生......

我怎么能得到这个?

+0

您是否从上次发帖中没有学到任何东西?您被要求在原始问题上发布SSCCE。我们没有时间坐在等待你发布SSCCE。我只知道答案,因为我回答了最后一个问题。其他人阅读这个问题不知道你的问题的背景。此外,由于您使用的是JTextPane,所以适当地命名变量以便发布的代码不会误导我们。 JEdi​​torPane和JTextPane的行为可能会有所不同。 – camickr

回答

1

有关更多信息和解决方案,请参阅Text and New Lines。这个环节的基础是使用:

int length = textPane.getDocument().getLength(); 
String text = textPane.getDocument().getText(0, length); 

以上仅返回“\ n”作为EOL字符串,所以当你做一个搜索的偏移量将会匹配,然后选择文本。

+0

啊,再次感谢,如果我在限制的国家werent,并有一些全球性的帐户,我希望支付你一半,因为你没有保存我的工作,但也是我的声誉,我把我们的大学价格竞争,学生认识我是一位优秀的编码员,这对我很不利。 狡猾我什么也没有:D –

+0

如果我以前有过新的东西,我可以利用HTML来制作荧光笔,我告诉他我不能这样做:)) –

+0

JTextPane支持高亮显示,它比使用起来要容易得多玩HTML。 – camickr