java - 通过设置 CardLayout 获取注册到 JPanel 的确切 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 中显示特定组件,请使用 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;
  }
}

关于java - 通过设置 CardLayout 获取注册到 JPanel 的确切 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451277/

相关文章:

java - 我应该在我的 Java 应用程序中为 HTTP 使用 java.net 或 org.apache.http 库吗?

java - 自定义 ListCellRenderer 的 JList 显示错误

android - 调整方向变化的 View

layout - Mathematica 中的 2 列文档

Android - 按钮高度不会降低以换行文本

java - 尝试创建一个程序,模拟掷 500 个骰子,并以星星的形式显示 1、2、直到 6 的数量

java - 使用GSON转换对象的JSON对象

java - 带有 ExecutorService.newFixedThreadPool 的生产者-消费者 - 创建了多少个线程?

Java - ImageIcon 在 FOR 循环中不工作

java - 旋转 JLabel 并读取旋转值