# Probleme beim Erstellen einer Tabelle



## winterwanderer (23. Okt 2008)

Hallo,
ich habe das folgende Problem:
Zu einem JFrame habe ich als Komponenten 4 JPanel addiert. In einem dieser JPanel möchte ich eine Tabelle platzieren, die das ganze JPanel ausfüllt.
Dazu habe ich eine JTable erstellt, der meine Daten übergeben und anschließend ein JScrollPane mit meiner Tabelle konstruiert. Dieses JScrollpane wurde nun zum JPanel addiert. Siehe folgendes Codefragment:


```
table = new JTable(tabellendaten, spaltenköpfe);
scroll = new JScrollPane(table, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
		scroll.setMinimumSize(new Dimension(100,100));
		scroll.setSize(arbeitsPanel.getSize().width,arbeitsPanel.getSize().height);
		arbeitsPanel.add(scroll,BorderLayout.CENTER);
		arbeitsPanel.addComponentListener(this);
		arbeitsPanel.repaint();
```

Meine Tabelle umfasst 30 Spalten. Gewünscht hätte ich mir nun einen Ausschnitt aus meiner Tabelle zu sehen und mit der Scrollleiste zum interessierenden Teil miener Tabelle hinscrollen zu können.
Es wird aber die gesamte Tabelle so dicht gedrängt angezeigt, dass man den Tabelleninhalt nicht mehr richtig lesen kann.
Als nächstes habe ich nun noch folgenden Code hinzugefügt, um die Tabellenbreite zu vergrößern.

```
for (int i=0; i < spaltenköpfe.length ; i++){
			table.getColumnModel().getColumn(i).setMinWidth(50);
		}
```
Damit habe ich nun tatsächlich erreicht, dass die Spaltenbreite 50Pixel beträgt. Nun wird aber nur noch ein Teil meiner Tabelle angezeigt. Die Gesamtweite meiner Tabelle beträgt nun 385 Pixel, die Gesamtweite meines Scrollpanes 550 Pixel. D.h. die Tabelle umfasst nicht mal das gesamte ScrollPane. Außerdem kann ich beim ScrollPane nichts scrollen. D.h. Ich sehe nur 7 Spalten meiner Tabelle, der Rest ist nicht zu sehen.
Es wäre schön, wenn jemand eine Idee hätte, wie das richtig funktioniert. Ich verbringe nämlich schon eine ganze Zeit damit und komm nicht weiter.
Danke


----------



## Marco13 (23. Okt 2008)

API lesen, API lesen, API lesen - und wenn das nicht hilft, ein kleines, Compilierbares Beispiel posten. Wer weiß ob dir die Antwort table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); weiterhilft.


----------



## winterwanderer (24. Okt 2008)

Hallo Marco13,
danke für die Antwort. Ja, der Befehl 

```
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
```
war die Lösung.  
Wie kann Programieren doch manchmal so einfach sein - wenn man nur weiß, wie man es zu machen hat. :wink: 
Also nochmal ganz herzlichen Dank. Nun kann ich weiterarbeiten.


----------

