I have a tool which plots data based on the user selection. The tool plots the line on 3 graphs and I've created uitable which displays the properties of the plotted line. I want to update the color of the text of the row according to the color of the line plotted. The table should get updated whenever a new line is plotted as well as the color of that one row only should change. How can I do that?
function tab_input(ui_table,cell_1a,cell_1b,cell_2,cell_3)
cell_1 = strcat(cell_1a,cell_1b,cell_1a);
existingData = get(ui_table,'Data');
tempData = {cell_1,cell_2,cell_3};
newData = [existingData;tempData];
set(ui_table,'Data',newData,'ForegroundColor',ci_color(cell_2));
end
In the above code, I want to append the table as well as, I want to change the textcolor of the current row only, whereas the color or the previous row (if any) should remain unaltered. Please suggest a workaround.

 Akzeptierte Antwort

Himanshu Verma
Himanshu Verma am 26 Aug. 2020

1 Stimme

I've found a workaround for this problem. Instead of changing the foreground, I'm changing the background. The background color of each row is saved in a matrix containing the RGB values of each row of the table. This matrix is passed as a 'BackgroundColor' argument while displaying the uitable.

Weitere Antworten (1)

Jyotsna Talluri
Jyotsna Talluri am 18 Mai 2020
Bearbeitet: Jyotsna Talluri am 18 Mai 2020

0 Stimmen

You can make use of uistyle and addstyle functions
Refer to the documnetation link below

4 Kommentare

Thanks for answering. I'm using Matlab 2019a and in that version uistyle and addstyle are not working. Is there any other method or workaround? I just need to display each row in the respective color (according to a specific value).
Please have a look at it. It is a html based way of filling the cells of uitable with data.It could be a workaround
I checked it and tried at my end. When I enter the following code:
uitable('Data',{'<html><body text color="#FF0000">Hello</body></html>'});
We get a table with a cell in which 'Hello' is written in red color.
I already have a uifigure open and a uitable has been built as its child. When I try to enter the data in this table as:
uitable(fig,'Data',{'<html><body text color="#FF0000">Hello</body></html>'});
It does not recognise the html code but gives this as output:
What could be the issue?
As an alternative, is it possible to change the background color of each row? It should work like whenever I add a new row, the background color of that row should change as per the value of decision variable (cell_2 in this case).

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Labels and Annotations finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by