1

cardPanel オブジェクト 3 JPanel に登録します。

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

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

JPanel を 1 つだけ取得します。この操作を行うにはどうすればよいですか?

4

1 に答える 1

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;
  }
}
于 2012-07-12T12:08:58.187 に答える