# GridLayout und scrollbar



## Bit2_Gosu (20. Mrz 2010)

Hi!

Ich habe ein JPanel mit GridLayout. Irgendwann wird die "Tabelle" aber zu groß. Ich will deshalb scrollbars ab einer best. Größe. Ich habe es mit einem JScrollPane statt JPanel probiert. Problem: "layout of JScrollPane must be a ScrollPaneLayout". Ich könnte dann mein GridLayout nicht benutzen.

Was kann ich tun?


----------



## eRaaaa (20. Mrz 2010)

Mhm? Du kannst doch das JPanel mit dem GridLayout ganz normal weiter benutzen, nur an der Stelle wo vorher die Tabelle direkt geaddet wurde, addest du jetzt halt die ScrollPane welche nun wiederum die Tabelle hält ?!


----------



## Bit2_Gosu (20. Mrz 2010)

"die ScrollPane welche nun wiederum die Tabelle hält."

Aber ich kann das Layout von ScrollPane ja nicht auf GridLayout festlegen.
Wenn ich dem JScrollPane ganz normal die Komponenten hinzufüge und dann das JScrollPane dem JPanel hinzufüge, welches ein GridLayout hat, dann bezieht sich das GridLayout ja nur auf das ScrollPane und nicht auf die Komponenten des ScrollPanes ?!


----------



## Foermchen82 (20. Mrz 2010)

auf die JScrollPane packst du nur die Tabelle. Alle anderen Komponenten liegen immer noch auf dem Panel. Oder was genau hast du vor?


----------



## Bit2_Gosu (20. Mrz 2010)

vielleicht ist das ein Missverständnis. Ich habe keine Tabellen-Klasse o.ä.. Mit "Tabelle" meinte ich die Struktur, die entsteht, wenn ich einem JPanel mit GridLayout ganz regulär Komponenten hinzufüge. Problem ist halt wie gesagt, ich kann einem ScrollPane kein GridLayout zuweisen.

Jetzt bringt ihr mich natürlich auf die Idee tatsächlich ein JTable zu benutzen. Lässt sich mit meinem bisherigen Ansatz aber keine Scroll-Möglichkeit einführen?


----------



## eRaaaa (20. Mrz 2010)

Scheint wirklich ein Verständnisproblem zu geben, vllt. zeigst du einfach mal ein Beispiel/Code ?!

Aber dennoch noch einmal die Frage: Was hindert dich daran, ein JPanel mit einem GridLayout zu benutzen, dieses Panel dann dem ScrollPane hinzuzufügen?!

Meinst du das nicht in etwa so?

```
public static void main(String... _) {
	JFrame frame = new JFrame();
	JPanel panel = new JPanel();
	panel.setLayout(new GridLayout(0,2));
	panel.add(new JButton("Button 1"));
	panel.add(new JButton("Button 2"));
	panel.add(new JButton("Button 3"));
	JScrollPane scrollpane = new JScrollPane(panel);
	frame.add(scrollpane);
	frame.setSize(100, 100);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setLocationRelativeTo(null);
	frame.setVisible(true);
    }
```


----------

