当前位置: 首页 > 知识库问答 >
问题:

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

池砚文
2023-03-14

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

但是我没有在CardLayout类中看到任何API,它可以让我测试一个特定的面板是否已经添加到卡片布局中。那里只有

空addLayoutComponent(字符串名,组件comp)

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

我该怎么做?

共有1个答案

乜安志
2023-03-14

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

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

  1. 您可以保留一个单独的HashMap

 类似资料:
  • 问题内容: 创建单例的模式似乎是这样的: 但是我的问题是,如果Singleton构造函数执行的不是单元测试友好的操作,例如如何调用外部服务,jndi查找等,您如何使用这样的类进行单元化? 我想我可以像这样重构它: 现在的问题是,仅出于单元可测试性,我已强制将getInstance同步,因此仅出于测试方面,它将对实际应用程序产生负面影响。有没有解决的办法,由于Java中双重锁定模式的破坏性,似乎其他

  • 我在想Spring中bean的懒惰初始化。对我来说,这里的“懒惰”是否意味着当一个bean被引用时会被创建并不十分清楚。 我认为Spring中的延迟初始化支持是不同的。我认为这是一个基于“方法调用”的惰性创建。我的意思是,每当对该方法调用任何方法时,都会创建该方法。 我认为这可以通过创建特定bean的代理实例并对任何方法调用进行初始化来轻松解决。 我是否遗漏了一些东西?为什么没有实施?这个概念有什

  • 在某些情况下,我的广播接收器是不需要的,所以需要检查接收器是否为空,但有些如何这个对象不为空,即使不使用它和造成崩溃。

  • 问题内容: 当我尝试获取懒惰的初始化实体时,我在IDE中看到以下异常消息(我无法找到它在代理实体中的存储位置,因此无法为该异常提供整个堆栈跟踪): 这是我尝试访问要使用的惰性初始化实体的字段后得到的堆栈跟踪: 我正在使用Spring Data,已配置JpaTransactionManager,数据库是MySql,ORM提供程序是Hibernate4。注释@EnableTransactionMana

  • 问题内容: 我有一个初始化为的变量: 问题是,在某个时候,我需要重置此变量,以便在更改后可以再次初始化。但是如果我将类设置为可选的话,LLVM在尝试将它设置为时会给我一个错误。如果我只是使用将其重置在代码中的某个位置,它将最终显示为。 有没有一种方法可以使用并允许自己重置? 问题答案: 懒惰是明确的仅一次初始化。您要采用的模型可能只是按需初始化模型: 现在,只要是,它会被初始化并返回。可以通过设置

  • 你知道为什么jackson不能将这个集合映射到json格式吗?