清除JTextArea不起作用

时间:2013-01-21 19:59:47

标签: java swing jlist jtextarea

我正在尝试清除写有内容的文本区域。 我一直在尝试使用repaint()方法,因为我认为这种方法会重置文本区域,但它一直没有用。

我正在使用文本区域和列表。单击列表成员时,所述成员将显示在文本区域中。因此,当他们“取消选择”时,我需要先前写过的成员从文本区域消失。

以下是valueChanged的代码,这是发生的事情:

public void valueChanged(ListSelectionEvent e)
{
        Object source = e.getSource();
        int[] indices = songList.getSelectedIndices();
        DecimalFormat df = new DecimalFormat("#0.00");

        Song[] selection = new Song[indices.length];
        for(int i = 0; i < indices.length; i++)
        {
            selection[i] = songCollection[indices[i]];
        }
        if(e.getValueIsAdjusting() == false)
        {
            for(int i = 0; i < selection.length; i++)
            {
                textArea.repaint(); //Shouldn't this work?
                textArea.append(selection[i].getTitle() + " " + selection[i].getArtist() + "    " + df.format(selection[i].getPrice()) + "\n" );

            }

        }               

}

PS,我对Stack Overflow很新,所以如果我做错了什么,请随时告诉我。

2 个答案:

答案 0 :(得分:4)

根据JTextComponent#setText

  

将此TextComponent的文本设置为指定的文本。如果是文字   是null或为空,具有简单删除旧文本的效果。什么时候   已插入文本,生成的插入符号位置由确定   插入符号类的实现。

因此,要清除JTextArea组件中的文字,请执行setText(null)setText("")

答案 1 :(得分:2)

如上所述。

setText(“”)也适用于文本字段btw。