Hallo,
ich habe einen JTable, welcher von vorn herein irgendwelche Spaltennamen hat (logisch ^^). Nun will ich gern zur Laufzeit die Spaltennamen ändern (Bsp English<->Deutsch). Klappt ja auch soweit erst einmal, jedoch mit einem kleinen (für mich großes) Problem. Er ändert zwar den Namen der Spalte optisch, jedoch wenn ich den Spaltenname abfrage, steht noch der alte Wert drin.
Ich hab hier mal ein kleines Codebeispiel vorbereitet.
Auf der Konsole wird mir die 1 statt BlaBla ausgegeben. In der Darstellung jedoch (Frame) wird BlaBla angezeigt.
Hat jemand eine Ahnung, wie ich nun den neuen Spaltennamen herausfinden kann?
ich habe einen JTable, welcher von vorn herein irgendwelche Spaltennamen hat (logisch ^^). Nun will ich gern zur Laufzeit die Spaltennamen ändern (Bsp English<->Deutsch). Klappt ja auch soweit erst einmal, jedoch mit einem kleinen (für mich großes) Problem. Er ändert zwar den Namen der Spalte optisch, jedoch wenn ich den Spaltenname abfrage, steht noch der alte Wert drin.
Ich hab hier mal ein kleines Codebeispiel vorbereitet.
Auf der Konsole wird mir die 1 statt BlaBla ausgegeben. In der Darstellung jedoch (Frame) wird BlaBla angezeigt.
Hat jemand eine Ahnung, wie ich nun den neuen Spaltennamen herausfinden kann?
Code:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class TestTable extends JFrame{
String[][] _unit_data = {
{ "1", "4", "7"},
{ "2", "5", "8"},
{ "3", "6", "9"}};
String [] _unit_rdata = { "1", "2", "3"};
JPanel panel;
public static void main(String args[]){
TestTable tt = new TestTable();
tt.createPanel();
}
public void createPanel(){
this.setSize(300,300);
panel = new JPanel(new BorderLayout());
JTable tab = new JTable(_unit_data, _unit_rdata);
panel.add("Center", new JScrollPane(tab));
this.add(panel);
this.setVisible(true);
this.show();
tab.getColumnModel().getColumn(0).setHeaderValue("BlaBla");
System.out.println(tab.getColumnName(0));
}
}