【问题标题】:How to change the text of selected text in Java?如何在 Java 中更改所选文本的文本?
【发布时间】:2013-05-31 06:43:37
【问题描述】:

我想更改 JTextArea 中选定文本的文本。

例如,当我按下按钮时,我希望更改选定的文本(选定的原始文本 - 当我按下按钮时我想像这样替换:替换:选定的原始文本)这就是我想要在我的代码,

String replacement = "Replace:" + messageBodyText.getSelectedText() ";

但我不知道如何只更改选定的文本我正在尝试做某事但我正在更改 JTextArea 的整个文本希望你理解我的问题?

感谢 Hovercraft Full Of Eels,他解决了我的问题,这是我为面临同样问题的其他人提供的代码:

int start = messageBodyText.getSelectionStart();
            int end = messageBodyText.getSelectionEnd();

            StringBuilder strBuilder = new StringBuilder(messageBodyText.getText());
            strBuilder.replace(start, end, "Replace:" + messageBodyText.getSelectedText() + ".");
            messageBodyText.setText(strBuilder.toString());

【问题讨论】:

    标签: java swing jtextarea selected


    【解决方案1】:
    textComponent.replaceSelection(newText);
    

    【讨论】:

      【解决方案2】:

      JTextComponent(也就是 JTextArea)有 getSelectionStart()getSelectionEnd() 方法可以帮助你。从 JTextArea 或其 Document 中获取文本,并使用这些 int 值更改文本并将其替换为文本组件。

      例如,

      int start = myTextField.getSelectionStart();
      int end = myTextField.getSelectionEnd();
      StringBuilder strBuilder = new StringBuilder(myTextField.getText());
      strBuilder.replace(start, end, newText);
      myTextField.setText(strBuilder.toString());
      

      【讨论】:

      • 嘿,伙计,谢谢你,你是我的英雄,我很亲密,但如果没有你,我相信我会再浪费 240 分钟
      • @user112862:很高兴它可以提供帮助。不过有个秘密:15 分钟前我还不知道这些方法,但我认为它们或类似的东西一定存在,并且 JTextComponent API 的快速峰值向我揭示了它们。这对我来说是一个有用的启发式方法,对你也很有用。
      • 再次感谢您,我从您那里学到了另一件事,但是有时当您努力工作时大脑无法工作,下次当您是新手时,我将休息,然后再回来尝试修复它。再次感谢您
      • 供将来参考,有一种方法可以为您执行此操作:) 请在下面查看我的答案。
      • @user112862:请“不接受”我的回答,而是“接受”camickr 的回答。这显然是两者中的佼佼者。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多