【问题标题】:How to append StringBuilder to textarea while replacing the previous string builder that was there?如何在替换之前的字符串生成器时将 StringBuilder 附加到 textarea?
【发布时间】:2015-01-30 05:26:34
【问题描述】:

所以string.appendstring2.appendStringBuilder 对象,我可以更快地从文本文件中加载单词,我的问题是当我从单选按钮的出现和字母顺序切换时,它只会添加到文本区域而不是替换上一个列表。有关如何解决此问题的任何想法?

for(SuperString word : ss)
{
  count++;
  string.append(Integer.toString(count)+ "       "+ word+ "\n");
  string.toString();
}
if(occurrence.isSelected())
{
 textarea.setText("");
 textarea.append("    "+filename+" has wordcount: "+words.size()+
  "\n-------------------------\n\n");
 textarea.append(string.toString());
}


 for(SuperString word : ss2)
{
   count2++;
   string2.append(Integer.toString(count2)+ "       "+ word.toString()+ "\n");  
}
     if(alphabetical.isSelected())
{
  textarea.setText("");
  textarea.append(string2.toString());

}

【问题讨论】:

  • "when I switch from radiobutton occurrence and alphabetical" -- 考虑解释这一点,就好像我们还不知道您的程序正在做什么或应该做什么一样。例如,“单选按钮出现”是什么?
  • 当我单击出现时,我的 StringBuilder(字符串)附加到已按单词出现对 txt 文件进行预排序的 textarea,当我单击按字母顺序排列时,我的 StringBuilder(string2)附加到已按字母顺序预排序的 textarea txt文件的字符串..当我这样做时,它只是添加到文本区域而不是替换那里的内容,即使列表越来越长
  • 哦,对不起,我猜 JRadioButton 就像一个可点击的“类型”。因此将根据选择的列表显示某个列表
  • 也许是我,但我完全迷路了。请考虑创建并发布minimal example program,这是一个小而完整的程序,只有必要的代码来演示您的问题,我们可以复制、粘贴、编译和运行而无需修改。
  • 也许textarea.replaceRange()

标签: java swing append jtextarea stringbuilder


【解决方案1】:

您可能正在寻找replaceRange(),它“如果新字符串为空或为空,只需执行删除。”然后你可以insert()0位置的新文本。

textarea.replaceRange(null, 0, 0);
textarea.insert(string2.toString(), 0);

附录:上面的这个不起作用

replaceRange()setText() 在提供 null 或空 String 时都可以正确清除文本区域。后者在完整的example 中有说明。由于您的代码中的其他地方可能存在问题,请验证 所有 Swing GUI 对象是在event dispatch thread 构造和操作的。特别注意append()no longer thread safe

【讨论】:

  • 我只是想清除和替换文本区域,显然这很难使用 stringbuilder。上面这个不起作用
  • 我已经在上面详细说明了。如果您仍有问题,请编辑您的问题以包含重现问题的complete example
猜你喜欢
  • 1970-01-01
  • 2011-06-19
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2012-09-04
相关资源
最近更新 更多