【问题标题】:Find/Replace dialog on jTextAreajTextArea 上的查找/替换对话框
【发布时间】:2012-12-29 16:56:04
【问题描述】:

我的任务是使用 NetBeans Java 制作记事本。我已经做了整个事情,我只是不知道如何实现查找/替换对话框,你能帮我解决这个问题吗?我正在使用 jTextArea。

【问题讨论】:

  • 你能给我们看一些代码吗?
  • 我只有 textArea 和 Menu,没什么特别的。我有新建、打开、保存等选项。无需显示代码 :)

标签: java netbeans


【解决方案1】:

我假设您已经知道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”,是来自 textArea 的文本吗?以及如何突出显示我在 textArea 中找到的单词。
  • 是的,我假设myText 是您记事本中的文本等效项。有关突出显示的技术,请参阅this question
【解决方案2】:

您可以使用 JTable,尽管这是非常规的。您可以将每个单词加载到一个新单元格中。这样,当您需要替换 1 个单词时,您不需要将整个 jtextarea 更新为 1 个字符,除非我弄错了。然而,这需要大量工作才能使其正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多