Change Color of each individual String in a Listbox ?

57 views (last 30 days)
Hey Guys,
I want to give each Word in my List box an specific color. My mentor said: its not possible. Now I ask here: is it possible to chose the Color of Listbox text with the RGB system ?

Accepted Answer

Adam on 2 Sep 2014
Edited: Adam on 2 Sep 2014
Data(1).name = 'red';
Data(1).Color = [255 0 0];
Data(2).name = 'green';
Data(2).Color = [0 255 0];
Data(3).name = 'blue';
Data(3).Color = [0 0 255];
pre = '<HTML><FONT color="';
post = '</FONT></HTML>';
listboxStr = cell(numel( Data ),1);
for i = 1:numel( Data )
str = [pre rgb2Hex( Data(i).Color ) '">' Data(i).name post];
listboxStr{i} = str;
figure; hListBox = uicontrol('Style','list', 'Position', [20 20 100 100], 'String', listboxStr );
That should give you an example of what you want with the following function defined based on Guillame's input above :
function hexStr = rgb2Hex( rgbColour )
hexStr = reshape( dec2hex( rgbColour, 2 )',1, 6);
Obviously if you have a pre-existing listbox from Guide you can just do the usual:
set( handles.listbox1, 'String', listboxStr )
instead of creating a new listbox.
Guillaume on 3 Sep 2014
The colours and names are embedded in the strings, so you could parse them:
liststrings = get(hlistbox, 'string');
colnames = regexp(liststrings, 'color="(.*)">(.*)</FONT', 'tokens', 'once');
data = cell2struct(reshape([colnames{:}], 2, []), {'color', 'name'});

Sign in to comment.

More Answers (4)

Adam on 1 Sep 2014
Slightly modified example of code Yair Altman posted many years ago:
figure; uicontrol('Style','list', 'String', ...
{'<HTML><FONT color="red">Red</FONT></HTML>', ...
'<HTML><FONT color="green">Green</FONT></HTML>', ...
'<HTML><FONT color="blue">Blue</FONT></HTML>'} );

Sign in to comment.

Max Müller
Max Müller on 1 Sep 2014
but i very new to programing..... can u pls explain me, how I cant set the ListboxInput and color each Word with a special Color (RGB)
Guillaume on 2 Sep 2014
That would be:
reshape(dec2hex([r g b], 2)',1, 6)

Sign in to comment.

Max Müller
Max Müller on 2 Sep 2014
it sucks
  1 Comment
Image Analyst
Image Analyst on 2 Sep 2014
Max, this is not an official "Answer" to your original question. If anything, it should have been a Comment to some other response.

Sign in to comment.

Max Müller
Max Müller on 2 Sep 2014
I just need an interactive way to show some text with a unique color and give this thing an on click callback.
Max Müller
Max Müller on 2 Sep 2014
Imagine i have a structure called Data.
are its Input. Now I want to write the names into a Listbox and give the String the Color form Data.Color.

Sign in to comment.


Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by