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

このテキストを指定されたテキストに設定しTextComponentます。テキストがnull空または空の場合、古いテキストを単に削除する効果があります。テキストが挿入されると、結果のカレットの場所は、カレットクラスの実装によって決定されます。

したがって、JTextAreaコンポーネントからテキストをクリアするには、、、setText(null)またはのいずれかを実行しsetText("")ます。

于 2013-01-21T20:08:05.233 に答える
2

上記のとおりです。

setText(" ") はテキスト フィールドでも機能します。

于 2013-01-21T20:13:32.200 に答える