【问题标题】:JTextArea appending and deleting problemsJTextArea 追加删除问题
【发布时间】:2018-04-05 03:34:41
【问题描述】:

我有一个 jTextArea,它显示来自 jTable 的单击项目。我已经有一个正在运行的代码,并且能够将字符串显示到我的 jTextArea 中。但是,每当我尝试删除字符串时都会遇到问题。

到目前为止,下面是我从 jTable 中单击的项目中获取字符串值的代码:

c = jTable2.getModel().getValueAt(jTable2.convertRowIndexToModel(selectedRow), 1).toString(); // this will get the name of product from a table and store it into C variable

上面代码中的字符串会显示在我的jTextArea上,如下图:

jTextArea1.append(c + "\n"); 

现在,每当我在 jTable 中单击一个项目时,这将存储到 c 变量中,并且新项目将附加到我的 jTextArea 下一行。

我在 jTextArea 中的示例输出将是:

苹果
芒果

现在,我想从该 jTextArea 中删除一个特定的字符串,我可以在我当前的代码中这样做。我正在使用这行代码来做到这一点:

 jTextArea1.setText(jTextArea1.getText().replaceAll(c, ""));

但是,每当我再次单击我的 jTable 以追加一个新项目时,它将被追加到空字符串旁边,示例输出如下:

//从这里是jTextArea的开始


芒果
苹果

现在,在显示新文本之前我得到了空字符串。

总之,我明白我从来没有从我的 jTextArea 中删除一个项目,但它所做的只是将字符串替换为一个空的。我的问题是我希望能够附加一个字符串,然后在需要时删除它而不影响其他附加的字符串,并且没有空字符串。

有没有其他方法可以代替我的“replaceAll”代码行?

【问题讨论】:

    标签: append jtextarea


    【解决方案1】:

    您要求的类似于编辑一行文本以删除中间的某些内容。自然,您通常不希望有间隙。一种方法是逐个字符地复制该行,但有一个规则,如果一个空格前面有一个空格,它将不会被复制(或者,如果出现一个空格并被复制,那么只有字符会被复制复制的不是该实例中的空格)。

    您可以通过读取每个字符串来复制一系列记录,检查其中是否只有空格,然后仅当该字符串不是空格时才将该字符串添加到第二个屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-08
      • 2023-03-22
      • 1970-01-01
      • 2012-08-08
      • 2016-01-06
      • 2012-08-09
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多