此代码替换为新的像这样的选择的话:如何突出显示替换所选单词的单词?
String search = jTextField1.getText();
String replaced = jTextPane.getText().replace(search, jTextField2.getText());
jTextPane.setText(replaced);
什么是设置的新词,以黄色背景的最简单的方法?
此代码替换为新的像这样的选择的话:如何突出显示替换所选单词的单词?
String search = jTextField1.getText();
String replaced = jTextPane.getText().replace(search, jTextField2.getText());
jTextPane.setText(replaced);
什么是设置的新词,以黄色背景的最简单的方法?
您可以使用属性:
Simple AttributeSet changed = new SimpleAttributeSet();
StyleConstants.setForeground(changed, Color.RED);
StyleConstants.setBackground(changed, Color.YELLOW);
// Change attributes on some text
StyledDocument doc = textPane.getStyledDocument();
doc.setCharacterAttributes(20, 4, changed, false);
查找/替换逻辑检查:Find/Replace, Highlight Words。您将修改突出显示的代码以使用属性。
private void changeAllActionPerformed(java.awt.event.ActionEvent evt) {
int j = 0;
int i = 0;
int index = 0;
String search = jTextField1.getText();
String replaced = jTextPane.getText().replace(search, jTextField2.getText());
jTextPane.setText(replaced);
String newtext = jTextField2.getText();
try{
if(!jTextField2.getText().isEmpty()){
while(i != -1){
i = jTextPane.getText().indexOf(newtext, j);
if(i == -1)
break;
if(evt.getSource() == changeAll|| evt.getSource() == changeAllButton){
jTextPane.select(i, i + newtext.length());
}
Color c = Color.YELLOW;
Style s = jTextPane.addStyle("TextBackground", null);
StyleConstants.setBackground(s, c);
StyledDocument d = jTextPane.getStyledDocument();
d.setCharacterAttributes(jTextPane.getSelectionStart(), jTextPane.getSelectionEnd() - jTextPane.getSelectionStart(), jTextPane.getStyle("TextBackground"), false);
j = i + search.length();
index++;
}
if (index > 0){
jTextPane.grabFocus();
jTextPane.setCaretPosition(jTextPane.getText().indexOf(newtext, 0));
}
} catch (Exception e){
jLabel.setText("error");
System.err.print(e);
}
匹配工作代码示例'什么是最简单的如何将新单词的背景设置为黄色?' - 此解决方案不符合该要求。这将改变文本窗格中所有单词的背景。例如,如果您在上面的代码片段中将“0”更改为“1”。即使没有改变,所有的“-1”值也会被突出显示。此外,由于我在我的答案中找到的链接中提供的原因,此代码无法在Windows计算机上工作。 – camickr 2015-04-06 00:42:04
但它适用于我的情况。 – lol 2015-04-06 10:12:34
@lol,你的意思是它适用于你的情况?你甚至尝试过我建议的吗?将上面的代码复制到文本窗格中,然后将“0”替换为“1”。 “-1”的“1”不应该突出显示,因为您的查找/替换逻辑不会更改该值。 – camickr 2015-04-08 15:46:03
两个问题1.为什么,2,为什么没有在文档搜索,我敢肯定,甲骨文教程 - 如何使用TextComponents包含有关搜索和亮点文件 – mKorbel 2015-04-05 18:28:50