uitable scroll behaves very slow ...

16 visualizaciones (últimos 30 días)
SSOI SS
SSOI SS el 15 de En. de 2012
Hi, I am creating a GUI with uitable. In this table there should be more than 30000 items of strings display. I just notice that if I put so many elements into uitable's data, the synchronisation of display by scrolling with the vertical scroll bar is not good. Sometime if I draw the bar little bit far away from the current location, it takes more than several or even ten seconds until the content is showed.
Does anyone have a idea how to improve this? Thank you very much .

Respuesta aceptada

Yair Altman
Yair Altman el 20 de En. de 2012
Matlab's uitable is very inefficient in its handling of data: each cell element is a separate object that needs to be separately created and rendered. This causes the initial data load and scrolling to become extremely slow if you have more than a few hundred/thousand cells in your table.
I've found a way to significantly reduce this overhead in uitable, and I plan to post this as an article in http://UndocumentedMatlab.com sometime in the upcoming month or two. This will make uitable much faster, but there is still an inherent slowdown when there is an enormous number of cells.
Instead of using uitable, if you use a simpler JTable or JideTable or my createTable (which is basically just a Matlab wrapper for a basic Java table), then the responsiveness improves significantly.
Or you can wait for Mathworks to improve uitable in some future Matlab release...
Yair Altman

Más respuestas (1)

Jan
Jan el 15 de En. de 2012
It is not a good idea to keep 30'000 strings in a uitable. Split the list into some smaller parts, e.g. starting with a specific character or similar.
A GUI should allow an intuitive usage of the controls. As long as the scrollbar has less than 30'000 pixels, it will not be user-friendly. Therefore I'm convinced, there must be a better approach.
  2 comentarios
SSOI SS
SSOI SS el 16 de En. de 2012
I know it is difficult for user to scroll within 30000 strings ... but this window is just a place to show the filter results and the user has his right to use the scroll bar .... so I don't think this is a problem of whether the design is good or not. Later I tried a solution based on Java jTable, it works very well and the table reacts to every movement of scroll bar in time. I think Matlab can do more than what it right now can.
Walter Roberson
Walter Roberson el 16 de En. de 2012
undocumentedmatlab.com

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by