0
我試圖在NetBeans中實現一個文本編輯器,它具有簡單的功能:文本樣式(粗體,斜體,帶下劃線的),打開文件,保存文件和搜索。搜索功能在文檔中搜索指定的字符串並突出顯示結果。當我試圖刪除這些高亮或爲不同的搜索添加新的亮點時會出現問題。目前我使用StyledDocument對象和jTextPane。NetBeans中的文本編輯器
private void textHighlight(int startAt, int endAt, Color c) {
Style sCh;
sCh = textEditor.addStyle("TextBackground", null);
StyleConstants.setBackground(sCh, c);
StyledDocument sDoc = textEditor.getStyledDocument();
sDoc.setCharacterAttributes(startAt, endAt - startAt, sCh, false);
}
private void textFind(java.awt.event.ActionEvent evt) {
int searchIndex = 0;
String searchValue = searchField.getText();
if(lastIndex != -1) {
while(searchIndex < lastIndex) {
countOccurencies++;
int i = textEditor.getText().indexOf(searchValue, searchIndex);
textHighlight(i, i+searchValue.length(), Color.MAGENTA);
searchIndex = i+searchValue.length();
}
statusLabel.setText(countOccurencies + " rezultatov.");
} else {
statusLabel.setText("Ni rezultatov!");
}
}
}
private void searchEnd(java.awt.event.ActionEvent evt) {
textEditor.removeStyle("TextBackground");
}
removeStyle()似乎沒有工作。
我試圖在替換函數中使用getDocument()。getText()方法,但是當替換長度與原始文本長度不同時,它給了我一個偏移量。 – user3476140
@ user3476140,不確定你在說什麼。這個問題是關於突出顯示文字,而不是取代文字。我給了你一個鏈接閱讀,我不能更好地解釋這個概念。 – camickr