Enable/Disable uitabs in uitabgroup, with v2015b
13 views (last 30 days)
Show older comments
In a GUI, is there a way to disable/enable a tab created by uitabgroup / uitab.
In a GUI I'm building, I would like to prevent the user from accessing some tabs at earlier stage of the process, and then grant access later when some operations are done in the GUI.
In following example:
fig=figure();
tabgroup=uitabgroup('Parent',fig);
tab1=uitab(tabgroup,'title','title1');
tab2=uitab(tabgroup,'title','title2');
I would like to disable tab2 (something like set(tab2,'Enable','off') would be nice).
It was possible with previous release (I tested with v2013a) using the following sequence:
jtabgroup=getappdata(handle(tabgroup),'JTabbedPane');
jtabgroup.setEnableAt(1,0);
... but I can't make it work using v2015b.
Thank you,
Antoine
1 Comment
Accepted Answer
Lynn
on 28 Apr 2016
To access the underlying Java object, use FindJObj.
Try replacing
jtabgroup=getappdata(handle(tabgroup),'JTabbedPane');
jtabgroup.setEnableAt(1,0);
With
jtabgroup=findjobj(tabgroup);
jtabgroup.setEnableAt(1,0);
3 Comments
MatMar
on 29 Sep 2016
Not sure whether your question is still uptodate:
I am using Matlab 2014b.
handles = findjobj(tabgroup)
handles = findjobj(tabgroup)
returns four handles in my case.
If I use
handles(4).setEnabledAt(index,true)
it works.
Best regards Marius
More Answers (2)
David Young
on 20 Nov 2015
A quick thought - how about using the SelectionChangedFcn callback of the uitabgroup object, to select another tab when one of the forbidden tabs is slected?
Sean de Wolski
on 6 Nov 2020
In App designer this is possible by adding a panel inside the uitab and disabling the uipanel.
0 Comments
See Also
Categories
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!