Java 惰性初始化-测试CardLayout是否添加了特定面板

Java 惰性初始化-测试CardLayout是否添加了特定面板,java,swing,awt,layout-manager,cardlayout,Java,Swing,Awt,Layout Manager,Cardlayout,我有一个带有字符串列表的列表框。根据选择的字符串,我需要在下面显示一组文本框。我的方法是为每组文本框创建一个JPanel,然后将所有这些JPanel放入卡片布局中。当用户选择一个特殊字符串时,我将翻转卡片布局以显示带有文本框的相应面板。 但是,我不想在手之前创建所有面板,因为用户可能永远不会选择一些列表值。因此,仅当用户选择一个列表值时,我想检查卡片布局是否添加了此卡片(或面板),如果没有,则创建新面板(带有文本框)并将其添加到卡片布局 但是我在CardLayout类中没有看到任何API,它允许

我有一个带有字符串列表的列表框。根据选择的字符串,我需要在下面显示一组文本框。我的方法是为每组文本框创建一个JPanel,然后将所有这些JPanel放入卡片布局中。当用户选择一个特殊字符串时,我将翻转卡片布局以显示带有文本框的相应面板。 但是,我不想在手之前创建所有面板,因为用户可能永远不会选择一些列表值。因此,仅当用户选择一个列表值时,我想检查卡片布局是否添加了此卡片(或面板),如果没有,则创建新面板(带有文本框)并将其添加到卡片布局

但是我在CardLayout类中没有看到任何API,它允许我测试某个特定面板是否已添加到卡布局中。只有

void addLayoutComponent(字符串名称,组件组件组件)

这不会返回任何东西来测试将面板成功添加到卡laout


如何执行此操作?

版面管理器使用了一个
哈希表(甚至不是
HashMap
),但它仅在内部使用,不对外公开

以下是两种可能的解决方案:

  • 您可以保留一个单独的
    HashMap
    来说明您创建的面板
  • 您可以保留一个
    JPanel
    参考列表,并在添加到接收容器之前检查并实例化
    null

  • CardLayout
    版面管理器使用了一个
    Hashtable
    (甚至不是
    HashMap
    ),但它只在内部使用,不对外公开

    以下是两种可能的解决方案:

  • 您可以保留一个单独的
    HashMap
    来说明您创建的面板
  • 您可以保留一个
    JPanel
    参考列表,并在添加到接收容器之前检查并实例化
    null

  • 我想我会选择方法1。谢谢。我想我会选择方法1。谢谢。