所以我编写了一个在文本区域中搜索单词的代码。这是代码:
else if(str.equals("Find Next"))
{
if(ta.getText().length()!=0 && t1.getText().length()!=0)
{
int n = ta.getText().trim().indexOf(t1.getText().trim());
ta.select(n,t1.getText().length());
}
}
作为引用,ta 是 texarea,t1 是用户输入要搜索的单词的 TextField。我的问题是,当我写一个类似这样的字符串时 - 他是一个好男孩,并搜索说,好,然后好没有被选中,但是当我搜索“他”时,他被选中。我基本上想说的是,如果我在文本字段中输入字符串的第一个单词,则会搜索并选择它,但如果我输入任何其他单词,它不会被选择。我哪里做错了?
最佳答案
问题是 select 的第二个参数需要是字符串的结束索引——它不是大小,而是位置。您提供的代码适用于字符串的开头,因为 n 为零,因此您的位置和大小恰好相同。我认为您可以通过将最后一行更改为来解决您的问题:
ta.select(n,n + t1.getText().length());
在工作情况下(在字符串的开头),n = 0,因此我们没有进行任何更改。如果不起作用,这个额外的“n +”会将我们移动到需要完成的位置。
关于java - 如何在 Swing 的 TextArea 中选择特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006480/