1
我必須編碼全文搜索。如果找到該單詞,則會突出顯示該單詞,如果按下「下一步」按鈕,則會突出顯示文本中的下一個單詞,依此類推。但挑戰是,文本中更深層次的詞語必須在窗口中間突出顯示。意思是,文本必須自動滾動到突出顯示的單詞。我在Stackoverflow上閱讀了幾篇文章,但是我無法實現它。搜索文本並自動向下滾動
這是我找到了Methode:
findButton.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
errorText.setText("");
if (textFieldFind.getText() != null) {
findWord = Pattern.compile(textFieldFind.getText(), Pattern.CASE_INSENSITIVE);
matcher = findWord.matcher(textArea.getText());
if (matchCase.isSelected()) {
findWord = Pattern.compile(textFieldFind.getText());
matcher = findWord.matcher(textArea.getText());
}
if (matcher.find()) {
textArea.selectRange(matcher.start(), matcher.end());
textArea.scr
}
} else {
errorText.setText("Missing search key");
}
}
});
這是我的 '下一步' 按鈕梅索德:
nextButton.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
if (matcher.find()) {
scroll.setVvalue(0.5);
textArea.selectRange(matcher.start(), matcher.end());
}
}
});
你可以包括你已經使用的任何代碼到目前爲止,我們可以幫助用您嘗試的代碼來調試問題,或者看看您想要更清楚地做什麼?根據我的理解,您想突出顯示不在列表中的文本框中的文本?並且當在文本中找到一個單詞時,讓它自動滾動,這樣該單詞就可以看到了嗎? – D3181
是的,自動滾動,這個詞是在窗口的中間。目前,突出顯示的單詞是可見的,但在窗口的底部。 – Marta
我在這裏猜測,但也許你可以使用textarea.setScrollTop(positionOfMatchInt);我會玩數字positionOfMatchInt - 100.在你的情況textArea.setScrollTop(matcher.start()); – Sedrick