【发布时间】:2012-12-29 16:56:04
【问题描述】:
我的任务是使用 NetBeans Java 制作记事本。我已经做了整个事情,我只是不知道如何实现查找/替换对话框,你能帮我解决这个问题吗?我正在使用 jTextArea。
【问题讨论】:
-
你能给我们看一些代码吗?
-
我只有 textArea 和 Menu,没什么特别的。我有新建、打开、保存等选项。无需显示代码 :)
我的任务是使用 NetBeans Java 制作记事本。我已经做了整个事情,我只是不知道如何实现查找/替换对话框,你能帮我解决这个问题吗?我正在使用 jTextArea。
【问题讨论】:
我假设您已经知道Swing 以及如何制作相应的对话框(因为您显然已经为记事本制作了JTextArea),并且您只想知道如何制作它在后端工作。
我要做的是让Scanner 对象通过您的文件来执行查找和替换。
String myAlteredText = "";
Scanner scanner = new Scanner(myText);
while(scanner.hasNext()) {
String next = scanner.next();
if(next.equals(userFindInput)) {
myAlteredText += userReplaceInput;
}
else {
myAlteredText += next;
}
myAlteredText += " ";
}
如果大小写无关紧要,您可以使用.equalsIgnoreCase()。同样,您可以调整以适应您的用户参数(即,如果它不必匹配整个单词,请改用.contains())。您可能需要做一些挑剔的其他事情来保持异常间距和换行符,但这是我会使用的一般方法。
【讨论】:
myText 是您记事本中的文本等效项。有关突出显示的技术,请参阅this question。
您可以使用 JTable,尽管这是非常规的。您可以将每个单词加载到一个新单元格中。这样,当您需要替换 1 个单词时,您不需要将整个 jtextarea 更新为 1 个字符,除非我弄错了。然而,这需要大量工作才能使其正常工作
【讨论】: