【问题标题】:Selection Indexes are not same to getText indexes选择索引与 getText 索引不同
【发布时间】:2013-06-09 00:37:38
【问题描述】:

我是java新手,7天前开始了一个项目,今天和这个地方的一些人一起成功解决了一个问题,但还有一个问题......

在上一个问题中,我需要搜索一个字符串并突出显示它,但现在,我的问题是:

为什么选择索引与我在某些我不认识自己的未知字符后搜索的索引不同:|

这是我的按钮代码:

    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 索引

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

它以这种方式突出显示: “嘿, doyou 怎么样?”

这意味着它开始了一个索引,它应该是什么,在这里它是 \n 的转义字符,我不知道,因为有时它会在单行文本中发生......

我怎样才能驾驭这个?

【问题讨论】:

  • 您没有从上次发帖中学到什么吗?您被要求发布带有原始问题的 SSCCE。我们没有时间坐等您发布 SSCCE。我只知道答案,因为我回答了最后一个问题。阅读此问题的其他人不知道您的问题的上下文。此外,由于您使用的是 JTextPane,因此请适当地命名您的变量,以便发布的代码不会误导我们。 JEdi​​torPane 和 JTextPane 的行为可能不同。

标签: java string swing document jeditorpane


【解决方案1】:

有关更多信息和解决方案,请参阅Text and New Lines。此链接的基础是使用:

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

上面将只返回 "\n" 作为 EOL 字符串,因此当您进行搜索然后选择文本时,偏移量将匹配。

【讨论】:

  • 啊,再次感谢,如果我不在一个限制国家,并且有一些全球帐户,我很想付给你一半,因为你不仅挽救了我的工作,而且还挽救了我的声誉,我拿走了我们大学的比赛价格,学生都知道我是优秀的程序员,这对我不利。乖乖我什么都不是:D
  • 如果我以前有新的,我可以利用 HTML 来制作荧光笔,我告诉他我不能这样做:))
  • JTextPane 支持高亮显示,比玩 HTML 更容易使用。
  • 我开始的时候,我只是在没有知识的情况下浏览netbean上的工具提示,然后开始写作,就像我从C#中所知道的一样,我遇到了许多以前从未遇到过的新事物,尽管我又一次工作了带有java gui环境。为什么java会有这样的东西?这些是什么? new [Class Name].[Something]();?是嵌套类吗?还有一个,当我们用 class.forName(...) 实现 mysqlConnection 时,我们不存储它,它去哪里了?
猜你喜欢
  • 1970-01-01
  • 2018-05-06
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 2013-05-18
相关资源
最近更新 更多