tags:

views:

138

answers:

2

I have written one small code to add three panels to a main panel but the code is not working.

JPanel jp,child1,child2,child3; JTabbedPane jtp;

public Panel4()
{
    jtp=new JTabbedPane();
    jp=new JPanel();
    child1=new JPanel();
    child2=new JPanel();
    child3=new JPanel();
    jtp.addTab("Child1",child1);
    jtp.addTab("Child2",child2);
    jtp.addTab("Child3",child3);
    jp.setLayout(null);
    jtp.setVisible(true);
    jp.add(jtp);
    jp.setVisible(true);
}

Here i am adding this jp to another JTabbedPane which is added in a JFrame. I can see the panel jp but not the childs (child1,child2,child3). Please suggest what is wrong here.

+1  A: 

replace

jp.setLayout(null);

by

jp.setLayout(new BorderLayout());
Pierre
You also need to call jp.add(jtp, BorderLayout.CENTER) if you opt for a BorderLayout.
Adamski
@Adamski - CENTER is the default if no constraint is given, but good practice to use it...
Carlos Heuberger
Interesting - I didn't know that.
Adamski
A: 

Hi all thanks for answers, i solved the problem. Previously i was adding childs to JTabbedPane and adding JTabbedPane to JPanel and again adding JPanel to the main JTabbedPane. Instead i added the JTabbedPane which contains the childs to the main JTabbedPane. This is confusing but thanks for the help.

Mandar