Java 使用CardLayout设置,获得一个准确的JPanel注册到JPanel

Java 使用CardLayout设置,获得一个准确的JPanel注册到JPanel,java,swing,layout,jpanel,Java,Swing,Layout,Jpanel,我注册到cardPanel对象3 JPanel JPanel cardPanel = new JPanel(new CardLayout()); cardPanel.add(viewPerf, "Performances"); cardPanel.add(viewFaults, "Faults"); cardPanel.add(viewGraph, "Throughput Graph"); 我将只获得一个JPanel。如何执行此操作?若要在CardLayout中显示特定组件,请使用CardL

我注册到cardPanel对象3 JPanel

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

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

我将只获得一个JPanel。如何执行此操作?

若要在
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;
  }
}

我不明白这个问题。我有三个jpanel注册到jpanel cardpanel,我会得到viewGraph panel。我怎么办?不幸的是,这不是我想要的…方法显示是无效的,所以我没有得到anything@user1508419查看我的编辑