Editing uitable column widths with cursor does not update ColumnWidth property
Afficher commentaires plus anciens
I have a uitable with editable column widths (ColumnEditable = true). I've noticed, however, that when I resize a column in the table using my cursor that the ColumnWidth property for the table does not change. This is important because I have a resize callback function for my figure to adjust the width of my table columns after the user adjusts the figure window size, but if a user manually adjusts the column width of the uitable with the mouse cursor and then resizes the figure window afterward then the adjustment made by the cursor is lost.
fig = figure;
myTable = uitable('Data',[1 2 3; 4 5 6; 7 8 9],'ColumnWidth',{50,100,50},'ColumnEditable',true);
% Requesting ColumnWidth ("myTable.ColumnWidth") returns 50 100 50
% Now modify one of the column widths by dragging edge with cursor
% Requesting ColumnWidth again returns the same values even though width is
% now different!!!
Does anyone know where to retrieve the column width after they're edited with a cursor? I assume this can be done by querying the underlying java object (findjobj.m from Yair), but I didn't see the desired column width fields in my querying.
Thanks.
3 commentaires
Walter Roberson
le 11 Mai 2017
Tricky.
Note: you can get to the java object of a uitable by using
java(myTable)
at least in R2017a. You get back a matlab_ui_control_TableBeanAdapter0
The java object includes a getColumnWidth method, but it appears to reflect only what you have set originally, not any change you made interactively.
Paul Shoemaker
le 17 Mai 2017
Modifié(e) : Paul Shoemaker
le 17 Mai 2017
Walter Roberson
le 17 Mai 2017
I suggest you move this into an Answer to make it easier for other people to find.
Réponses (0)
Catégories
En savoir plus sur App Building dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!