disable JTabbedPane

Hi,


I have a JTabbedPane with 3 JPanels and one JTabbedPane...

JTabbedPane  main = new JTabbedPane();
JPanel            a1    = new JPanel();
JPanel            a2    = new JPanel();
JPanel            a3    = new JPanel();
JTabbedPane  b_main = new JTabbedPane();
JPanel            b1    = new JPanel();
JPanel            b2    = new JPanel();

main.add("a1", a1);
main.add("a2", a2);
main.add("a3", a3);
main.add("b menu", b_main);
b_main.add("b1", b1);
b_main.add("b2", b2);

If I have two JButtons, button1 and button2, in my b1...and when I click button1, I will process some function, at the same time, I don't want users to change tabs...how can I do so??
xenia27Asked:
Who is Participating?
 
zzynxConnect With a Mentor Software engineerCommented:
So, when clicking the button:

for (int i=0; i<main.getTabCount(); i++)
    main.setEnabledAt(i, false);

b_main.setEnabledAt(1, false);  // to disable b2
0
 
zzynxSoftware engineerCommented:
First, try if

         main.setEnabled(false);

helps.
0
 
zzynxSoftware engineerCommented:
This can certainly help:

       void setEnabledAt(int index, boolean enabled) : Sets whether or not the tab at index is enabled.
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
zzynxSoftware engineerCommented:
>> I don't want users to change tabs
So you could disable all tabs:

for (int i=0; i<main.getTabCount(); i++)
    main.setEnabledAt(i, false);

And afterwards enable them again (replace false by true in the above)
0
 
NaeemgCommented:
Do u want to display any tab strip when user clicks on button?
if so, then
suppose u want to show the panel, 'a1' when uer clicks button.

main.setSelectedComponent(a1);
OR
main.setSelectedIndex(0)

if u want to disable then
main.setEnabled(true)


Naeem Shehzad Ghuman
0
 
zzynxSoftware engineerCommented:
>>if u want to disable then           // *disable*
>>main.setEnabled(true)             // true???


0
 
expertmbCommented:
this should be sufficient no need to go for each tab.
in action performed set false once processing is over then enable tab by setting true flag.
setEnabled(boolean enabled)
0
 
xenia27Author Commented:
mMm...I'm confused...
OK...I have two layers of JTabbedPane, right?  And when I click on button1 which is in b1...I would like to disable all other tabs...a1, a2, a3, and b2...the only thing will work is button1 and button2...

If I would like to use setEnabledAt, should I do this?
main.setEnabledAt(index, false); and b_main.setEnabledAt(index, false); right???
0
 
xenia27Author Commented:
OK...I got what I want with setEnabledAt...but I'm confused about the index part...
I mean the second layer....how can I count the index?  like what's the index number of b2???
0
 
zzynxSoftware engineerCommented:
>>b_main.add("b1", b1);
>>b_main.add("b2", b2);

The index of b2 in b_main is 1 (of b1 is 0)
0
 
xenia27Author Commented:
OK...I got it...Thanks~~~~~  ^__^
0
 
zzynxSoftware engineerCommented:
Thank you
0
 
expertmbCommented:
you would have done it by setting the tabbedpane to flag false and true.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.