アプリ版:「スタンプのみでお礼する」機能のリリースについて

JPanel上で,以下の初期化関数を作って,データが更新されたときに,この初期化関数を再度呼び出して,テーブルを作り直しています.

描画直後は,正しく表示されるのですが,
スクロールバーに触ったり,セルをクリックしたりすると,
初めに作成したテーブルの表示に戻ってしまいます.

何が原因で,どのように対処すれば良いのでしょうか?
ご回答いただけますよう,よろしくお願いいたします.

public void init_table()
{
tablemodel1 = new DefaultTableModel(column_names1, text.keyword_num);
table1 = new JTable(tablemodel1);
scrollt1 = new JScrollPane(table1);
add(scrollt1);

    以下略
}

A 回答 (1件)

何にadd()しとんのや?


レイアウトマネージャはちゃんとしとんのか?

ふつうSwingのコンテナなら、
古いコンポーネントを
remove()して
repaint()して
新しいコンポーネントを
add()して
revalidate()するのが基本的な手続きどすえ。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます.

上記関数の先頭で,
remove(scrollt1);
を実行すると直りました.

なるほどですね.
malloc, freeと同じで後片付けが必要とは,盲点でした.
いやー天才ですね!!

お礼日時:2008/12/10 11:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!