Ich habe eine benutzerdefinierte AbstractTableModel gemacht. Der Konstruktor initialisiert das Modell mit Daten aus einer Datei. Ich möchte jedoch dem Modell eine zusätzliche Spalte hinzufügen (dies liegt an SQL-Einschränkungen in seinen Spalten).Java: wie FireTableStructureChanged ein AbstractTableModel ändern?
Ich versuche dies zu erreichen, indem ich zu dem Initialisierungscode einen Aufruf einer Methode addColumn (String columnName, Vector columnData) hinzufüge.
Diese addColumn-Methode in meinem benutzerdefinierten AbstractTableModel wird direkt von der AddColumn-Methode von DefaultTableModel abgeleitet, einschließlich "fireTableStructureChanged()".
Doch wenn ich diesen Code ausführen, scheint FireTableStructureChanged() meine neue Spalte nicht hinzuzufügen und die JTable zeigt nur mit Daten aus der Datei. Warum könnte das sein?
Hier ist ein kurzer Hinweis auf den Code ich verwende:
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();
}
}
Ist es ein Zuhörer Problem - wird zu diesem Zeitpunkt fireTableStructureChanged nichts hören()?
Bitte lernen Java Namenskonventionen und bleiben Sie dabei – kleopatra
@kleopatra - danke, aber ich kenne sie. dummy ist nicht mehr als ein Wegwerf-Klassenname für Stackoverflow-Zwecke! – Arvanem
Es tut den Augen potenzieller Helfer weh :-) Was kann nicht sein, was du willst ... – kleopatra