# JTable Header wird nicht angezeigt ohne ScrollPane



## Spin (2. Jun 2011)

Hallo meine JTabel zeigt keinen Header an ohne der JScrollPane , warum?


```
this.table = new JTable();
		this.table.setModel(GameController.getInstance().getHighScoreData());
		this.table.setEnabled(false);
		
		this.tablePanel = new JPanel();
		this.tablePanel.add(this.table);
```


Model:#

```
package model;

import java.util.ArrayList;

import javax.swing.table.*;

/**
 * Class HighScoreData 
 */
public class HighScoreData extends AbstractTableModel {

	/**
	 * serial version uid
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * column names
	 */
	private String[] columnNames = {
			"Player:", "Score:", "Victories:"
	};
	
	/**
	 * list of player
	 */
	private ArrayList<Player> playerList 		= null;
	
	/**
	 * Default Constructor
	 * @param {@code ArrayList<Player> playerList} - playerList
	 */
	public HighScoreData(ArrayList<Player> playerList) {
		this.playerList = playerList;
	}

	@Override
	public String getColumnName(int column) {
		return this.columnNames[column];
	}
	
	
	@Override
	public int getColumnCount() {
		return this.columnNames.length;
	}

	@Override
	public int getRowCount() {
		return playerList.size();
	}

	@Override
	public Object getValueAt(int row, int col) {
		
		switch(col){
			case 0 : return playerList.get(row).getName();
			case 1 : return playerList.get(row).getScore();
			case 2 : return playerList.get(row).getVictory();
		}
		return null;
	}

}
```

Danke für schnelles Feedback.

Nimmt man mal einmal Swing Table , hat man nur Ärger 
Bin wohl gerade blind oder finde den trick nicht XD .

grüße spin


----------



## Spin (2. Jun 2011)

Hallo hat keiner einen Ansatz?
???:L


----------



## eRaaaa (2. Jun 2011)

Doch:
How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


> The scroll pane automatically places the table header at the top of the viewport. The column names remain visible at the top of the viewing area when the table data is scrolled.
> 
> If you are using a table without a scroll pane, then you must get the table header component and place it yourself. For example:
> 
> ...



Soll heißen, du musst this.table.getTableHeader() zusätzlich hinzufügen!


----------



## André Uhres (3. Jun 2011)

Spin hat gesagt.:


> Nimmt man mal einmal Swing Table , hat man nur Ärger



Im Gegensatz zu den Datenzellen soll ein Header (egal ob Columnheader oder Rowheader) ja nie mitscrollen. Deshalb werden wohl standardmäßig solche Header nicht direkt an die JTable gekoppelt, sondern an die JScrollPane, in der die JTable drin liegt. Eine gewisse Logik kann man demnach sogar der bei der Swing Table erkennen .

Gruß,
André


----------

