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 ループでのみ出力されません。このコマンドを他の場所に配置すると、正しい出力が得られます。ここで何が問題なのですか。