2012-07-12 64 views
1

我註冊到cardPanel對象3 JPanel。獲得一個確切的JPanel,註冊到JPanel並設置了CardLayout

JPanel cardPanel = new JPanel(new CardLayout()); 

cardPanel.add(viewPerf, "Performances"); 
cardPanel.add(viewFaults, "Faults"); 
cardPanel.add(viewGraph, "Throughput Graph"); 

我只能得到一個JPanel.how我可以做這個操作嗎?

+1

我不明白這個問題。 – user1329572 2012-07-12 12:02:49

+0

我有三個jpanel註冊到jpanel cardpanel,我會得到viewGraph面板。我可以做什麼? – user1508419 2012-07-12 12:04:09

回答

3

要在CardLayout顯示特定組件,使用CardLayout#show(String)方法,將名字你給的成分,當你添加它:

((CardLayout)cardPanel.getLayout()).show("Throughput Graph"); 

或者,您可以保存佈局,當你創建:

CardLayout cardPanelLayout = new CardLayout(); 
cardPanel.setLayout(cardPanelLayout); 
... 
cardPanelLayout.show("Throughput Graph"); 

編輯:爲了得到當前可見的組件的引用,我相信你能做到這一點:

Component visibleComp = null; 
for (Component comp : cardPanel.getComponents()) { 
    if (comp.isVisible()) { 
    visibleComp = comp; 
    break; 
    } 
} 
+0

不幸的是,這不是我正在尋找...方法顯示是無效的,所以我沒有得到任何東西 – user1508419 2012-07-12 12:34:05

+0

@ user1508419看到我的編輯 – 2012-07-12 12:50:16