我有一个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”代码行来实现这一目标?
答案 0 :(得分:0)
您要求的是类似于编辑一行文本以删除中间的内容。当然,你通常不希望有差距。一种方法是将字符串逐字符复制,但规则是如果空格前面有空格则不会被复制(或者,如果空格出现并被复制,则只有字符将是复制的不是该实例中的空格)。
您可以通过读取每个字符串来复制一系列记录,检查其中是否只有空格,并且仅当该字符串不是空格时才将该字符串添加到第二个屏幕。