# [Eclipse] JComboBox -> Dropdown-Pfeil wird nicht angezeig



## TheGadget (15. Aug 2006)

Moin!
Ich bin gerade dabei mir ein GUI zu schreiben und ich bin etwas verwundert, dass bei der JComboBox kein DropDown-Pfeil angezeigt wird bzw. erst angezeigt wird, wenn ich das oberste Item lösche!

Mein Codefragment:

```
SensorCombobox = new JComboBox();
		SensorCombobox.setBounds((ffb - ax - ((int) (ffb - (3 * ax) - SimPanel.getBounds().getWidth()))) , ay , ((int) (ffb - (3 * ax) - SimPanel.getBounds().getWidth())) , 24);
		SensorCombobox.addItem("Sensor wählen");
		SensorCombobox.addItem("GP2D12");
		SensorCombobox.addItem("GP2D120");
		SensorCombobox.setToolTipText("Auswählen des zu simulierenden Sensors");
		SensorCombobox.setSelectedItem("Sensor wählen");
		SensorCombobox.addItemListener(new ItemListener()
		{
			public void itemStateChanged(ItemEvent e)
			{
				JComboBox auswahl = (JComboBox)e.getSource();
		        
				if(auswahl.getSelectedItem().equals("Sensor wählen"))
				{
					sensor_typ = null;
					
					SimStartStoppButton.setEnabled(false);
					SimManuellRadiobutton.setEnabled(false);
					SimAutomatischRadiobutton.setEnabled(false);
					
					repaint();
				}
				else if(auswahl.getSelectedItem().equals("GP2D12"))
				{
					sensor_typ = "GP2D12";
					SimPanel.setSensor_typ(sensor_typ);
					
					SimManuellRadiobutton.setEnabled(true);
					SimAutomatischRadiobutton.setEnabled(true);
					
					SensorCombobox.removeItem("Sensor wählen");
					
					repaint();
				}
				else if(auswahl.getSelectedItem().equals("GP2D120"))
				{
					sensor_typ = "GP2D120";
					SimPanel.setSensor_typ(sensor_typ);
					
					SimManuellRadiobutton.setEnabled(true);
					SimAutomatischRadiobutton.setEnabled(true);

					SensorCombobox.removeItem("Sensor wählen");
					
					repaint();
				}
			}
	   });
```

Woran liegt das bzw. was mache ich falsch?

Danke für eure Hilfe! )

Viele Grüße
  Florian


----------



## TheGadget (15. Aug 2006)

Kann mir niemand helfen!?
Wenn nichts falsch ist, könnte es an irgendwelchen anderen Faktoren liegen?

Bitte helft mir doch! *fleh*

Viele Grüße
  Florian


----------



## L-ectron-X (15. Aug 2006)

Ohne jetzt deinen setBounds()-Aufruf auseinander nehmen zu wollen. Aber das sieht sehr fehlerträchtig aus.

Benutzt du zufällig ein NullLayout? Möglicherweise hast du Komponenten übereinander geschoben.


----------



## TheGadget (15. Aug 2006)

Hallo L-ectron-X!
Du hast mir gerade die Tomaten von der Brille gewischt! *g*


			
				L-ectron-X hat gesagt.:
			
		

> Ohne jetzt deinen setBounds()-Aufruf auseinander nehmen zu wollen. Aber das sieht sehr fehlerträchtig aus.
> Benutzt du zufällig ein NullLayout? Möglicherweise hast du Komponenten übereinander geschoben.


Jap, es ist ein Null-Layout! ;o)
Komscher Weise funktioniert die JComboBox ohne weitere Komponenten auf der Frame-Fläche, wenn ich alle einblende funktioniert sie nicht mehr richtig.
Deaktiviere ich mindestens eine Komponente funktioniert es wieder, obwohl die Komponenten noch nicht mal direkt neben der JComboBox liegen und es ist völlig egal, welche Komponente ausschalte, woran kann das liegen?

Danke nochmal, dass Du Dich meiner erbamt hast! *thx*

Viele Grüße
  Florian


----------



## L-ectron-X (15. Aug 2006)

Liegt sehr wahrscheinlich daran, dass du Swing- mit AWT-Komponenten vermischt hast.
Guck mal, das kann voll ausarten: http://www.java-forum.org/de/viewtopic.php?t=5113


----------



## TheGadget (15. Aug 2006)

Hallo L-ectron-X!
Also eigentlich habe ich nur Swing-Komponenten verwendet ...
... außer einer ButtonGroup mit zwei JRadioButtons!
Kann es an ihr liegen?
Gibt es eine Swing-Variante der ButtonGroup, JButtonGroup akzeptiert Eclipse nicht?!

Viele Grüße
  Florian


Nachtrag:
Ich sehe gerade, dass ButtonGroup auch in der Swing ...

Und noch ein Nachtrag:
Im Prinzip kann es ja nicht an einer einzelnen Komponente liegen, die in AWT ist, denn egal welche Komponente ich deaktiviere ( setVisible(false) ), dann funktioniert es, aber es liegt nicht an einer bestimmten Komponente!
Die JComboBox ist garantiert eine Swing ...
Ich verstehe das alles nicht ... ;o)


----------



## L-ectron-X (15. Aug 2006)

Dann kommen wir nicht drumherum, uns mal näher mit deinem Code zu befassen.
Wie ich schon sagte, vielleicht überdecken sich Komponenten in irgendeiner Weise.

Poste mal Code.


----------



## Wildcard (15. Aug 2006)

Sicher nicht das was du hören willst, aber jetzt kennst du einen der Gründe warum man kein null-'Layout' verwenden sollte  :wink:


----------



## TheGadget (15. Aug 2006)

Hallo Wildcard!
Ich weiß, aber ich mag das irgendwie lieber! ;o)
Ich arbeite lieber mit geauen Positionen als mit Relationen ...

Hallo L-ectron-X!
Soll ich den gesamten Code posten?
Sind aber schon über 800 Zeilen ... *lol*

Viele Grüße und Danke für eure Mühe
  Florian


----------



## L-ectron-X (16. Aug 2006)

Am besten etwas kompilierbares, so kann man es besser nachvollziehen.
Und 800 Zeilen im Forum wäre schon ziemlich viel. Daher ist es besser, wenn du die Klasse(n) in ein Zip-Archiv steckst, auf einen Server lädst uns den Link hier postest.


----------



## TheGadget (16. Aug 2006)

Moin!
Ich habe den Code eben schnell auf "übersichtliche" 520 Zeilen heruntergekürzt, der gekürzte Teil hat aber nichts mit dem feherbehafteten Code zu tun ...

Hier nun der Link:
http://www.cer-online.de/Sharp-Sim1.0.zip

Danke für eure Hilfe! )

Viele Grüße
  Florian


PS:
Falls ihr die JComboBox nicht sofort entdeckt, ganz oben rechts ... *g*


----------



## L-ectron-X (16. Aug 2006)

Setze mal über dein repaint(); in der Klasse SimFrame noch ein validate();


----------



## TheGadget (16. Aug 2006)

Hallo L-ectron-X!
Was macht dieses validate(), ich konnte auf die Schnelle keine gute Erklärung finden?!
Aber danke schonmal, jetzt funktioniert's! )

Viele Grüße
  Florian


----------



## L-ectron-X (16. Aug 2006)

http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Container.html#validate()


----------



## TheGadget (16. Aug 2006)

Ah, danke! ;o)


----------

