Borrar filtros
Borrar filtros

uitable: setValueAt() ignores HTML code

2 visualizaciones (últimos 30 días)
Stephan Heise
Stephan Heise el 27 de Mzo. de 2014
Comentada: Stephan Heise el 25 de Jul. de 2018
Hi,
I use HTML to format the text color in cells of a uitable, e.g.
set(table_handle, 'Data',{'<html><font color="red">cell contents'});
If I later try to change the contents of that cell using the setValueAt method of the table's underlying jTable, the HTML formatting isn't changed, i.e. when using
jTable.setValueAt('new cell contents',0,0)
the new cell contents is still formatted red and if I click the cell to start editing it, I see that the HTML code is still there.
Any ideas how to also overwrite the HTML code without having to re-write the whole table using set(table_handle, 'Data',...) ?
(By the way, I know it would be more elegant to use a custom cell renderer...)
  3 comentarios
Stephan Heise
Stephan Heise el 27 de Mzo. de 2014
Sorry - I forgot that. Here is the code:
jscrollpane = findjobj(table_handle);
jTable = jscrollpane.getViewport.getView;
Stephan Heise
Stephan Heise el 31 de Mzo. de 2014
Maybe I should also mention that I try to set the cell value in the jTable's MousePressedCallback, i.e. in my GUI's OutputFcn I set
set(handle(jTable, 'CallbackProperties'), ...
'MousePressedCallback',{@table_MousePressedCallback, gcf});
and then later
function table_MousePressedCallback(jTable, jEventData, figure_handle)
...
jTable.setValueAt(newValue, jTable.rowAtPoint(jEventData.getPoint), jTable.columnAtPoint(jEventData.getPoint));
...

Iniciar sesión para comentar.

Respuesta aceptada

Vineeta Chaturvedi
Vineeta Chaturvedi el 28 de Jun. de 2018
Hi Stephan,
I understand you are trying to achieve certain functionality in uitable but using findjobj. Not sure the purpose of using findjobj and the use case where its required to use the setValue function.
Alternatively you can use the matlab uitable directly to achieve the required functionality.
Here is the code -
ut = uitable('Data',{'<html><font color="red">cell contents'})
ut.Data{1,1} = 'cell contents'
Thanks, Vineeta
  1 comentario
Stephan Heise
Stephan Heise el 25 de Jul. de 2018
Hi Vineeta,
thank you for pointing me towards this elegant solution! Since I had developed my code in HG1-times, I never thought of this...
Thanks, Stephan.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by