【问题标题】:how to add text rather than replacing it in textfields java如何在文本字段java中添加文本而不是替换它
【发布时间】:2016-03-21 20:29:34
【问题描述】:

我有多个包含一些信息的按钮。 现在我希望在我按下按钮时附加写在按钮上的信息,即当我按下第一个按钮时 - 信息被打印到文本字段中 当我按下第二个按钮 - 写在按钮上的信息被附加或添加到带有旧信息(按钮 1 中的数据)的文本字段中。

我正在尝试的代码是:

private void EActionPerformed(java.awt.event.ActionEventevt) {                                  
   String x = ans.getText();
   for(int i = 0; i < x.length(); i++) {
      ans.setText("H");
   }
}

private void FActionPerformed(java.awt.event.ActionEvent evt) {                                  
    String x = ans.getText();
    for(int i = 0; i > x.length(); i++) {
         ans.setText("A");
         System.out.println("completed");
    }
}

【问题讨论】:

    标签: java swing replace append add


    【解决方案1】:

    简单地说:

    ans.setText(ans.getText() + newString);
    

    【讨论】:

    • 鉴于每当您更改文档时都会生成 DocumentEvents,您真的应该使用新文本更新文档(如 MadProgrammers 回答所示),而不是替换现有文本,否则您会生成不正确的事件。
    【解决方案2】:

    有几种方法可以做到这一点,setText 是其中之一,但它不是特别有效(虽然它更容易键入),因为您正在通过该过程创建额外的临时对象

    如果您需要经常更新该字段,您可以考虑使用类似...

    Document doc = userNameField.getDocument();
    doc.insertString(doc.getLength(), newString, null);
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 2022-01-12
      • 2013-08-26
      • 2015-08-14
      • 1970-01-01
      • 2018-05-17
      • 2014-11-16
      • 1970-01-01
      相关资源
      最近更新 更多