# Leere JTable



## yeTh7 (14. Jul 2006)

Hallo!

Ist es möglich eine leere JTable zu erstellen, welche dennoch über Spaltennamen verfügt. Ich bräuchte das, da ich in eine anfangs leere Tabelle erst nachträglich Ergebnisse eintragen möchte.

Wie stelle ich das an? Bisher hab ich es nur über den Konstruktor JTabel(Object[][] rowData, Object columnNames) geschafft. Dieser verlangt aber mindestens eine Zeile.

Danke schon mal.


----------



## Guest (14. Jul 2006)

Übergib als rowData einfach *null*. 

mfg


----------



## André Uhres (14. Jul 2006)

Anonymous hat gesagt.:
			
		

> Übergib als rowData einfach *null*.


Besser leeres Array *new Object[][]{}* sonst riskierst du ne NullPointerException.


----------



## yeTh7 (14. Jul 2006)

Genau das war mein Problem. Daran hatte ich zuerst auch gedacht, dabei allerding immer eine Null-Pointer Exception abkassiert.

Nach langem hin und her bin ich nun auf folgende Lösung gekommen:

```
DefaultTableModel tableModel = new DefaultTableModel();
JTable table = new JTable(tableModel);

tableModel.addColumn("Name:");
tableModel.addColumn("Server:");
tableModel.addColumn("IP:");

JScrollPane scrollPane = new JScrollPane(table);
```


----------



## André Uhres (15. Jul 2006)

yeTh7 hat gesagt.:
			
		

> ..Nach langem hin und her bin ich nun auf folgende Lösung gekommen:...


Mit deiner Lösung, und meiner die ich dir schon oben gab, 
	
	
	
	





```
table = new JTable(new Object[][]{}, new String [] {"Name:", "Server:", "IP:"});
```
und der folgenden, 
hast du nun schon drei Möglichkeiten (es gibt natürlich noch mehr):

```
table = new JTable();
        table.setModel(new DefaultTableModel(
            new Object [][] {},
            new String [] {"Name:", "Server:", "IP:"}
        ) {
            Class[] types = new Class [] {
                String.class, String.class, String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, true
            };
            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        scrollPane = new JScrollPane(table);
```


----------

