# Größe einer JComboBox fest definieren



## podman (8. Mrz 2007)

Hallo ich habe folgendes Problem:
Ich will in ein Fenster eine JComboxBox setzten, die der Benutzer nach und nach mit Werten befüllen kann. Demnach ist die JComboBox am Anfang leer. Aber sie ist auch wenn ich die Gui ausführe, extrem klein. Wenn ich sie zum Beispiel mit dem Wert "1234567" befülle, dann ist sie gerade so groß wie eben dieser Wert. Ich möchte aber, das die JComboBox gleich zu Beginn zum Beispiel 10 cm/ 250 Pixel breit ist. 
Beim JFrame gibts ja die Methode setPrefferedSize, gibt es sowas auch für die JComboBox, in der API werde ich irgendwie nicht fündig, was aber auch an meinen Englischkenntnissen liegen kann. =)


----------



## siroFranz (8. Mrz 2007)

wenn ich das richitg verstehe sollte es mit setBounds(x,y) gehen =?


----------



## podman (8. Mrz 2007)

private DefaultComboBoxModel serverListeModel = new DefaultComboBoxModel();
private JComboBox serverListe = new JComboBox(serverListeModel);
serverListe.setBounds(10, 20); ??? Unterkringel mir eclipse!


----------



## siroFranz (8. Mrz 2007)

gehts nicht oder wie jetzt?


----------



## Beni (8. Mrz 2007)

"setBounds" erwartet vier Argumente: x, y, breite, höhe. Könnte man auch in der API nachschlagen... :wink:


----------



## Marco13 (8. Mrz 2007)

Wenn du einen LayoutManager verwendest, zerhaut's dir die Größeneinstellungen aber, sobald du z.B. die Fenstergröße änderst. Was soll auch passieren, wenn der Benutzer den Frame z.B. KLEINER als 250 Pixel oder 10 cm macht?


----------



## siroFranz (8. Mrz 2007)

jo beni stimmt sollte nächste mal erst vorher mal in die api schauen


----------



## podman (8. Mrz 2007)

Hm, ich habs jetzt mit dem hier gelöst:
Dimension groesse = new Dimension(260, 23); 
comboBoxName.setPreferredSize(groesse);


----------



## Lim_Dul (8. Mrz 2007)

setBounds würde ich auch nicht nehmen.

Folgende Alternativen gibt es:

setPreferredSize(). Nachteil: Die Box wird auch nicht größer, selbst bei einfügen größerer Werte und einem revalidate()
setMinimumSize(). Set die minimale Größe. Hat den Vorteil, dass bei größeren Einträgen die Box dann größer werden kann.
setPrototypeDisplayValue(). Berechnet die Größe der Box aus dem übergebenen Wert. Die Box wird so groß, dass dieser Wert gerade rein passt. Hat den enormen Vorteil, dass beispielsweise die Höhe automatisch so hoch ist, dass die Schrift reinpasst, aber auch nicht höher ist.

Von daher würde ich minimumSize oder setPrototypeDisplayValue nehmen.


----------

