1

我正在尝试清除上面写有内容的文本区域。我一直在尝试使用 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 还很陌生,所以如果我做错了什么,请随时告诉我。

4

2 回答 2

4

JTextComponent#setText

将 this 的文本设置为TextComponent指定的文本。如果文本为null或为空,则具有简单删除旧文本的效果。插入文本后,生成的插入符号位置由插入符号类的实现确定。

因此,要从JTextArea组件中清除文本,请执行setText(null)setText("").

于 2013-01-21T20:08:05.233 回答
2

如上所述。

setText(" ") 也适用于文本字段。

于 2013-01-21T20:13:32.200 回答