Java 选择索引与getText索引不同
我是java新手,7天前开始了一个项目,今天和一些来自这里的人一起,我成功地解决了一个问题,但还有一个问题 在上一个问题中,我需要搜索一个字符串并突出显示它,但现在,我的问题是: 为什么选择索引与我在不认识自己的未知字符后搜索的索引不同:| 这是我的按钮代码:Java 选择索引与getText索引不同,java,string,swing,document,jeditorpane,Java,String,Swing,Document,Jeditorpane,我是java新手,7天前开始了一个项目,今天和一些来自这里的人一起,我成功地解决了一个问题,但还有一个问题 在上一个问题中,我需要搜索一个字符串并突出显示它,但现在,我的问题是: 为什么选择索引与我在不认识自己的未知字符后搜索的索引不同:| 这是我的按钮代码: int startFrom = jEditorPane1.getSelectionStart(); if(jEditorPane1.getSelectionStart() == jEditorPane1.getSelect
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);
}
我确信我需要做一些字符串处理,将字符串索引转换为swing jEditorPane/JTextPane索引
例如:
我在字符串中搜索do,如下所示:
“嘿,
您好。”
它以这种方式突出了这一点:
“嘿,
do
你是怎么做的?”
这意味着它开始了一个索引,它应该是什么,在这里它是casue-escape-char的\n,我不知道,因为有时它发生在单行文本中
我如何了解这一点?有关更多信息和解决方案,请参阅。此链接的基本功能是使用:
int length = textPane.getDocument().getLength();
String text = textPane.getDocument().getText(0, length);
上面的内容将只返回“\n”作为下线字符串,因此当您进行搜索并选择文本时,偏移量将匹配。您没有从上次发布中了解到任何信息吗?您被要求发布带有原始问题的SSCCE。我们没有时间坐在那里等你发布SSCCE。我只知道答案,因为我回答了最后的问题。阅读此问题的其他人不知道您问题的上下文。另外,由于您使用的是JTextPane,请恰当地命名变量,这样发布的代码就不会误导我们。JEditorPane和JTextPane的行为可能会有所不同。啊,再次感谢,如果我不在一个有限的国家,并且有一些全球账户,我真的希望付给你一半,因为你不仅挽救了我的工作,还挽救了我的声誉,我为比赛拿了我们大学的价格,学生们知道我是一名优秀的编码员,这对我来说是不好的。粗暴地说,我什么都不是:如果我以前有新的这个,我可以利用HTML制作荧光笔,我告诉他我不能这样做:))JTextPane支持高亮显示,而且比使用HTML容易得多。我开始的时候,我只是毫无知识地浏览netbean上的工具提示,然后开始写作,就像我从C#知道的那样,我遇到了许多以前从未遇到过的新事物,尽管我再次使用JavaGUI环境。为什么java有这样的东西?它们是什么<代码>新建[类名].[某物]()代码>?是嵌套类吗?还有一点,当我们用class.forName(…)实现mysqlConnection时,我们不存储它,它放在哪里?