Double click callback on a cell in uitable without Java?

After google-ing for a while, I cannot find a feasible solution to realize the double click callback on a cell in uitable.
Does anyone have a better idea or workaround for this? without java or findjobj.

回答(1 个)

How about CellSelectionCallback and test the figure SelectionType property for 'open' ?

3 个评论

Try following codes:
function test()
f = figure('Position',[200 200 400 150]);
dat = rand(3);
cnames = {'X-Data','Y-Data','Z-Data'};
rnames = {'First','Second','Third'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,...
'CellSelectionCallback', @cbk, ...
'RowName',rnames,'Position',[20 20 360 100]);
function cbk(~, ~)
ty = get(f, 'SelectionType')
end
end
You'll see only normal comes out from the selectiontype.
In R2020a and ealier, 'SelectionType' was not honorored by UItables; starting from R2020b, the above solution should work.
Using 2021B at the moment, and above solution **mostly** works, except if one double clicks a cell that's already selected. In this case, the CellSelectionCallback is never fired at all. Curious if there's any solution for detecting a double-click in a cell that's already selected?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 App Building 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by