我实现了在 jTextPane 中突出显示单词的方法。如果我从主类调用该方法,一切正常,但如果我从另一个类调用该方法,而循环不起作用。这是我的代码:
// Main class with my method, I named it Frame
public void traziJedan(String rijec){
try{
Highlighter h = jTextPane1.getHighlighter();
h.removeAllHighlights();
String text = jTextPane1.getText();
String pattern = rijec;
int pos = 0;
while ((pos = text.indexOf(pattern, pos)) >= 0) {
System.out.println(rijec);
h.addHighlight(pos, pos + pattern.length(), DefaultHighlighter.DefaultPainter);
pos += pattern.length();
}
}
catch(BadLocationException e){}
}
// method in another class
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Frame f = new Frame();
f.traziJedan(jTextField1.getText());
}
System.out.println(rijec); 我把它放在这里只是为了看看这个方法是否有效,但是这个词不会只在 while 循环中打印出来,如果我把这个命令放在其他任何地方,我会得到正确的输出。这里有什么问题。