2010-01-20 59 views
1

我已經寫了一個小代碼來添加三個面板到主面板,但代碼無法正常工作。我們可以在面板內添加面板來創建嵌套的標籤式菜單嗎?

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); 
} 

這裏我將這個jp添加到另一個JTabbedPane,它被添加到JFrame中。 我可以看到面板jp,但不是孩子(child1,child2,child3)。 請提出這裏有什麼問題。

回答

1

通過

jp.setLayout(new BorderLayout()); 
+0

如果您選擇BorderLayout,還需要調用jp.add(jtp,BorderLayout.CENTER)。 – Adamski 2010-01-20 11:12:15

+0

@Adamski - CENTER是默認的,如果沒有給出約束,但使用它的良好做法... – 2010-01-20 14:13:17

+0

有趣的 - 我不知道。 – Adamski 2010-01-20 15:08:55

0

更換

jp.setLayout(null); 

大家好感謝的答案, 我解決了這個問題。 此前我正在將孩子添加到JTabbedPane中,並將JTabbedPane添加到JPanel中,並再次將JPanel添加到主JTabbedPane中。 相反,我添加了JTabbedPane,其中包含childs到主JTabbedPane。 這是令人困惑,但感謝您的幫助。