私はカスタムAbstractTableModelを作成しました。コンストラクタは、ファイルからのデータでモデルを初期化します。ただし、モデルに余分な列を追加したい(これは列のSQL制限のためです)。Java:fireTableStructureChangedをAbstractTableModelに変更する方法
私は、初期化コードにaddColumn(String columnName、Vector columnData)メソッドの呼び出しを追加することでこれを達成しようとしています。
私のカスタムAbstractTableModelのこのaddColumnメソッドは、 "fireTableStructureChanged()"を含むDefaultTableModelのaddColumnメソッドから直接派生しています。
しかし、このコードを実行するとfireTableStructureChanged()は新しいColumnを追加しないように見え、JTableの表示はファイルのデータのみで行われます。これはなぜでしょうか?ここで
は、私が使用していたコードの短い徴候である:
public class Dummy extends AbstractTableModel {
public Dummy() {
//load data from SQL file into ResultSets
//transfer ResultSet.metadata into columnHeaders Vector<String>
//transfer ResultSet.data into columnDatums Vector<String>
fireTableChanged(null);
addColumn("Added Heading", (Vector)null);
}
public addColumn(String columnHeader, Vector columnData) {
columnHeaders.add(columnHeader);
// transfer columnData into columnDatums
fireTableStructureChanged();
}
}
は、それがリスナーの問題です - )(fireTableStructureChangedにこの時点で聴くものではありませんか?
Java命名規則を学び、それらに固執してください。 – kleopatra
@kleopatra - ありがとう、しかし私はそれらを知っています。ダミーはstackoverflowの目的のためのスローアウェイクラスの名前にすぎません! – Arvanem
それは潜在的なヘルパーの目を傷つけています:-)あなたが望むものにすることはできません... – kleopatra