ホームページ >Java >&#&チュートリアル >JTable 行が重複するのはなぜですか? `fireTableStructureChanged()` を使用して修正するにはどうすればよいですか?

JTable 行が重複するのはなぜですか? `fireTableStructureChanged()` を使用して修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 10:05:46772ブラウズ

Why Are My JTable Rows Duplicating, and How Can I Fix It Using `fireTableStructureChanged()`?

JTable 行の重複: 根本原因への対処

この場合、JTable 行の重複値の問題は、不適切な実装に起因しています。カスタム内の fireTableDataChanged() メソッドのCollectionDataModel.

fireTableDataChanged() の正しい実装

fireTableDataChanged() メソッドは、基になるデータが変更されたことを JTable に通知し、テーブルの表示の更新をトリガーする必要があります。提供されたコード スニペットでは、このメソッドは実装されていないように見えます。

これを正しく実装するには、populate() メソッドの最後に次のコードを追加します。

fireTableStructureChanged();

説明

fireTableStructureChanged() メソッドは、列数やデータ構造などを示します。行、変更されました。これにより、テーブルが列と行を正しく再構築するようになります。

サンプル コード

これは、fireTableStructureChanged() メソッドが実装された修正コードです。

public void populate(Collection c) {
    data.clear();
    for(Item i : c.getItems()) {
        ArrayList<String> row = new ArrayList<String>();
        for(Property p : i.getProperties().values()) {
            row.add(p.toString());
        }
        data.add(row);
    }
    fireTableStructureChanged();
}

fireTableStructureChanged() メソッドを正しく実装すると、新しいデータが更新されたときにテーブルが正しく更新されます。値が入力され、重複する行が表示されるのを防ぎます。

以上がJTable 行が重複するのはなぜですか? `fireTableStructureChanged()` を使用して修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。