Java 惰性初始化-测试CardLayout是否添加了特定面板
我有一个带有字符串列表的列表框。根据选择的字符串,我需要在下面显示一组文本框。我的方法是为每组文本框创建一个JPanel,然后将所有这些JPanel放入卡片布局中。当用户选择一个特殊字符串时,我将翻转卡片布局以显示带有文本框的相应面板。 但是,我不想在手之前创建所有面板,因为用户可能永远不会选择一些列表值。因此,仅当用户选择一个列表值时,我想检查卡片布局是否添加了此卡片(或面板),如果没有,则创建新面板(带有文本框)并将其添加到卡片布局 但是我在CardLayout类中没有看到任何API,它允许我测试某个特定面板是否已添加到卡布局中。只有 void addLayoutComponent(字符串名称,组件组件组件) 这不会返回任何东西来测试将面板成功添加到卡laoutJava 惰性初始化-测试CardLayout是否添加了特定面板,java,swing,awt,layout-manager,cardlayout,Java,Swing,Awt,Layout Manager,Cardlayout,我有一个带有字符串列表的列表框。根据选择的字符串,我需要在下面显示一组文本框。我的方法是为每组文本框创建一个JPanel,然后将所有这些JPanel放入卡片布局中。当用户选择一个特殊字符串时,我将翻转卡片布局以显示带有文本框的相应面板。 但是,我不想在手之前创建所有面板,因为用户可能永远不会选择一些列表值。因此,仅当用户选择一个列表值时,我想检查卡片布局是否添加了此卡片(或面板),如果没有,则创建新面板(带有文本框)并将其添加到卡片布局 但是我在CardLayout类中没有看到任何API,它允许
如何执行此操作?版面管理器使用了一个
哈希表(甚至不是HashMap
),但它仅在内部使用,不对外公开
以下是两种可能的解决方案:
您可以保留一个单独的HashMap
来说明您创建的面板
您可以保留一个JPanel
参考列表,并在添加到接收容器之前检查并实例化null
CardLayout
版面管理器使用了一个Hashtable
(甚至不是HashMap
),但它只在内部使用,不对外公开
以下是两种可能的解决方案:
您可以保留一个单独的HashMap
来说明您创建的面板
您可以保留一个JPanel
参考列表,并在添加到接收容器之前检查并实例化null
我想我会选择方法1。谢谢。我想我会选择方法1。谢谢。