PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schriftfarbe in JComboBox ändern



Jor
03-01-2007, 06:21
Hallo *,

wie kann ich die Textfarbe in einer ComboBox ändern, dabei meine ich jetzt nicht die möglichen Auswahlwerte, sondern die Schriftfarbe des Items, das in dem Editierfeld angezeigt wird. Mittels myBox.setForeground(Color) werden "nur" die Auswahlwerte in der gewünschten Farbe dargestellt.
(Über das Model bin ich auch nicht weiter gekommen. )
Hat jemand dazu ein Tipp? :)

Cosh
03-01-2007, 12:02
ins blaue geraten und nicht getestet:
combobox.getEditor().getEditorComponent().setForeg round( color );

Gruß

Jor
03-01-2007, 13:56
Hallo Cosh,
vielen Dank! Du hast mal so ins Blaue geschossen und es hat prima gefunzt. So kann ich wirklich den Text im Feld verändern, kann die Auswahlwerte aber in der Standardfarbe lassen. :) :)
Aber..., warum kann ich über das Objekt "getEditor" darauf zugreifen? :confused:
Hätte Jahre gedauert bis ich das gefunden hätte (wenn überhaupt...) :rolleyes:

Cosh
03-01-2007, 14:21
das ist wohl ähnlich Deinem Table-Problem. In Java wurden viele Klassen so generisch wie möglich gehalten. Du kannst als Entwickler eine ganz andere Editier-Komponente für eine JCombobox setzen als die Standard-Komponente. Standardmässig ist das ein JTextField. Wenn Du mit der Maus in die Combobox klickst (und sie editierbar ist), wird im Hintergrund eine Instanz der Editor-Komponente angezeigt, in der Du nun etwas eintippen kannst. Das ist dann Dein Eingabefeld, welches Du in der Farbe ändern wolltest. Du könntest aber beispielsweise statt einem Texteingabefeld z.b. ein JSlider dort hinein setzen das bei einem Klick in die Combobox angezeigt wird. Du kannst eigentlich alles machen... :)

Jor
03-01-2007, 15:44
Ahaa... ich glaube ich habe jetzt verstanden wie sich die Komponenten zusammen setzen bzw. wie sie aufgebaut sind. :)
Ich danke dir :)