Netbeans: Column Header im jTable zur Laufzeit ändern

Havoc<>

Mitglied
Hallo zusammen,

kann mir jemand sagen wie ich mit der jTable umgehen muss? Über jTable.addValueAt(); kann ich ohne Probleme Werte hinzufügen, aber nicht den die Column Beschriftung ändern.

Ich habe mir bereits die Swing Tutorials von sun durchgelesen, weiß allerdings nicht wie ich die Models genau auf meinen Fall anwenden kann, da die jTables automatisch von Netbeans "created" wird.

Vielen Dank im Voraus.

btw. Ein versuch war folgender:
Java:
            // Tabelle aufbauen
            AbstractTableModel model = jtResults.getModel();
            TableColumnModel tcm = new DefaultTableColumnModel();
            
            for ( int i = 0; i <= rsmd.getColumnCount(); i++ ) 
            { 
              TableColumn col = new TableColumn(i);
              col.setHeaderValue(rsmd.getColumnLabel(i+1));
              TableColumn column = jtResults.getColumnModel().getColumn(i);
              column.setHeaderValue(rsmd.getColumnLabel(i+1));
              jtResults.setValueAt(rsmd.getColumnLabel(i+1),0,i);
              jtResults.setColumnModel(column);
              jtResults.updateUI();
              setColumnModel(tcm);
            }


Gruß Jens
 
Hallo zusammen,

Ohje. Das war echt einfach. Allerdings: Wer ahnt schon das "updateUI" einfach nicht funktioniert - an dieser Stelle.

Schade das ich hier im Forum keine Antwort auf das Problem bekommen habe. Inzwischen habe ich aber einen Tipp im Internet gefunden (http://www.exampledepot.com/egs/javax.swing.table/ChangeHeadName.html)

Gelöst habe ich das ganze jetzt so:
Java:
for ( int i = 0; i <= rsmd.getColumnCount(); i++ ) 
{ 
  jtResults.getColumnModel().getColumn(i).setHeaderValue(rsmd.getColumnLabel(i+1));
  jtResults.getTableHeader().resizeAndRepaint();
}

Komisch finde ich aber das es nur Beispiele gab, in denen die "Header" bereits zum Erstellungszeitpunkt feststanden. Bin ich der einzige der die Header zur Laufzeit aktualisieren wollte :-)?

Gruß Jens
 
Zurück