gpt4 book ai didi

java - 延迟初始化 - 测试 CardLayout 是否添加了特定面板

转载 作者:行者123 更新时间:2023-11-29 03:41:19 27 4
gpt4 key购买 nike

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

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

void addLayoutComponent(String name,Component comp)

这不会返回任何内容来测试面板是否成功添加到卡片布局。

我该怎么做?

最佳答案

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

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

  1. 你可以保留一个单独的HashMap<String, JPanel>考虑到您创建的面板。
  2. 你可以保留一个JPanel引用列表并检查并实例化 null在添加到接收容器之前。

关于java - 延迟初始化 - 测试 CardLayout 是否添加了特定面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13010701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com