# JTable AbstractTableModel Header setzen



## käst (24. Mrz 2011)

Hallo

Habe ein JTable, das Model der Tabelle ist das AbstractTableModel.
In das AbstractTableModel lade ich eine Excel Datei.

Ich will die Header meiner Tabelle ändern. Es kommen immer die Standard header (A, B, C, D usw.).

Wie kann ich beim AbstractTableModel die Header setzen?

Gruss


----------



## SlaterB (24. Mrz 2011)

AbstractTableModel (Java 2 Platform SE 5.0)

schau dir die Methoden im Quellcode oder in der API an, sind nicht mehr als 20, welche davon könnte es wohl sein?


----------



## Shulyn (24. Mrz 2011)

```
Aus AbstractTableModel

 /**
     *  Returns a default name for the column using spreadsheet conventions:
     *  A, B, C, ... Z, AA, AB, etc.  If <code>column</code> cannot be found,
     *  returns an empty string.
     *
     * @param column  the column being queried
     * @return a string containing the default name of <code>column</code>
     */
    public String getColumnName(int column) {


Aus TableModel (interface)
/**
     * Returns the name of the column at <code>columnIndex</code>.  This is used
     * to initialize the table's column header name.  Note: this name does
     * not need to be unique; two columns in a table can have the same name.
     *
     * @param	columnIndex	the index of the column
     * @return  the name of the column
     */
    public String getColumnName(int columnIndex);


//mach z.B. sowas 

@Override
public String getColumnName(int columnIndex) {
        switch (columnIndex) {
            case 1:
                return "name";
...
```


----------



## käst (24. Mrz 2011)

die Methode getColumnName(int) gibt mir den Aktuellen Namen zurück. 
und wie soll ich den verändern? ich sehe keine set-Methode


----------



## AmunRa (24. Mrz 2011)

Du solltest dir eine eigene Klasse schreiben die von AbstractTableModel erbt und dort z.B. die Methode getColumnName(int i) überschreiben.


----------



## käst (24. Mrz 2011)

konnte es dank dem beispiel lösen.
dankeschön


----------



## Shulyn (24. Mrz 2011)

käst hat gesagt.:


> die Methode getColumnName(int) gibt mir den Aktuellen Namen zurück.
> und wie soll ich den verändern? ich sehe keine set-Methode



Richtig. Du musst die Methode überschreiben.


```
JTable tbl = new JTable(new AbstractTableModel() {
                    
                    public Object getValueAt(int rowIndex, int columnIndex) {
                        // TODO Auto-generated method stub
                        return null;
                    }
                    
                    public int getRowCount() {
                        // TODO Auto-generated method stub
                        return 0;
                    }
                    
                    public int getColumnCount() {
                        // TODO Auto-generated method stub
                        return 0;
                    }
                    
                    @Override
                    public String getColumnName(int column) {
                        switch (column) {
                        case 1:
                            return "name";
                        default: return "text";   
                        }
                    }
                });
```


//edit  : zu langsam ;(


----------

