# Größe einer JList beeinflussen



## Alex_winf01 (11. Mai 2008)

Hallo liebe Forengemeinde,

habe ein "kleines" Problem, welches für Euch Experten garantiert schnell lösbar ist:


```
liste = new JList(defaultlistmodel);
liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
liste.setSelectedIndex(0);
liste_scrollPane = new JScrollPane(liste);
```

Nun möchte ich die Größe meiner Liste verändern. Die Liste soll länger werden. Folgendes habe ich probiert:


```
liste.setSize(100,50);
```


```
liste.setPreferredSize(new Dimension(100,50)
```


```
liste.setMinimumSize(new Dimension(100,50)
```

Ergebnis: Nichts passiert. Also ich möchte, dass der Wert für Height größer wird.

Die Liste liegt in einem FlowLayout:


```
JPanel listen_Panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
```

Dieses Panel liegt wiederum in meiner Con:


```
con1.add(listen_Panel, BorderLayout.WEST);
```

Wer kann helfen?


----------



## SlaterB (11. Mai 2008)

toll, sone halbe Frage,
erst darf man sich den restlichen Code zusammensuchen, poste doch ein fertiges Beispiel und gut is,
und dann ist das Problem auch noch etwas unklar

mit einem einfachen setPreferredSize wird die Liste sofort sehr groß,
du weißt schon, dass 50 nicht besonders viel ist?

```
public class TestGUI extends JFrame {

	public TestGUI() {

		DefaultListModel defaultlistmodel = new DefaultListModel();
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		JList liste = new JList(defaultlistmodel);
		liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		liste.setSelectedIndex(0);
		liste.setPreferredSize(new Dimension(100,200));
		JScrollPane liste_scrollPane = new JScrollPane(liste);
		
		JPanel listen_Panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
		listen_Panel.add(liste_scrollPane);

		add(listen_Panel, BorderLayout.WEST);
		setSize(400, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}


	public static void main(String[] args) {
		new TestGUI();
	}
}
```

die Liste auf 50 kleinzumachen ist dagegen schwieriger, kleiner als das JScrollPane will das ganze nicht aussehen, 
macht wahrscheinlich auch für sich keinen Sinn,
also auch JScrollPane kleiner machen:

```
public class TestGUI extends JFrame {

	public TestGUI() {

		DefaultListModel defaultlistmodel = new DefaultListModel();
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		defaultlistmodel.addElement("Test       ");
		JList liste = new JList(defaultlistmodel);
		liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		liste.setSelectedIndex(0);
		liste.setPreferredSize(new Dimension(100, 50));
		JScrollPane liste_scrollPane = new JScrollPane(liste);
		liste_scrollPane.setPreferredSize(new Dimension(100, 50));

		JPanel listen_Panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
		listen_Panel.add(liste_scrollPane);

		add(listen_Panel, BorderLayout.WEST);
		setSize(400, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args) {
		new TestGUI();
	}
}
```


----------



## Alex_winf01 (11. Mai 2008)

@ SlaterB

sorry, dass die Frage nicht deutliche rübergekommen ist. Ich wollte nur die Größe der JList beeinflussen. Das Problem war, selbst wenn ich setSize(5000,5000) gemacht habe, hat das nicht funktioniert. Nun habe ich folgendes gemacht:


```
liste_scrollPane.setPreferredSize(new Dimension(100,200));
```

Damit konnte ich die Größe der Liste beeinflussen. Logisch auch, wenn ich die JList in ein scrollPane packe :shock:


----------

