gpt4 book ai didi

java - 检查 CardLayout 中是否存在带有名称的卡片

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:16:36 25 4
gpt4 key购买 nike

我有一个 CardLayout,我只在需要时在其中添加卡片。因此,当需要显示特定卡片(由其名称标识)时,我需要一种方法来检查是否已存在具有该名称的卡片,以便我可以相应地显示或创建它。

根据CardLayout documentation

Flips to the component that was added to this layout with the specified name, using addLayoutComponent. If no such component exists, then nothing happens.

因此,如果我要求它显示尚未添加的卡片,则不会抛出任何错误。我找不到任何可让我检查卡是否存在的 API。

那么,这可能吗?如果不是,人们将如何解决这个问题?有解决方法是我手动记住我添加了哪些卡片,但感觉 swing 应该可以处理这个问题。

最佳答案

CardLayout API 无法检查是否已添加具有给定名称的组件。

如果你真的想这样做(但我强烈建议反对这样做),那么你可以在 CardLayout 上使用反射由容器使用,并读取其 vector字段,然后检查给定名称的每个条目(类型 CardLayout$Card )。如您所见,这看起来像是一个 hack,如果 CardLayout 它可能会崩溃某天被重构(当前的实现非常丑陋)。

最好的方法是让您直接跟踪 Set<String> 中所有添加的子项的名称。某处的字段。无论如何,这样做真的没什么大不了的。

关于java - 检查 CardLayout 中是否存在带有名称的卡片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040989/

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