1

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

但是我在 CardLayout 类中看不到任何 API,它可以让我测试是否已将特定面板添加到卡片布局中。只有

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

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

我怎样才能做到这一点?

4

1 回答 1

4

布局管理器使用了一个Hashtable(甚至没有HashMap),CardLayout但这仅在内部使用,不对外公开。

这里有两种可能的解决方案:

  1. 您可以单独保留一个HashMap<String, JPanel>以说明您创建的面板。
  2. 在添加到接收容器之前,您可以保留JPanel参考列表并检查和实例化。null
于 2012-10-22T12:08:24.097 回答