编程语言
首页 > 编程语言> > java – 检查CardLayout中是否存在具有名称的卡

java – 检查CardLayout中是否存在具有名称的卡

作者:互联网

我有一个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.

那么,这可能吗?如果不是如何解决这个问题呢?有一个解决方案,我手动记住我添加了什么卡但感觉摇摆应该能够处理这个.

解决方法:

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

如果你真的想这样做(但我强烈建议AGAINST这样做),那么你可以在容器使用的CardLayout上使用反射,并读取它的矢量字段,然后检查每个条目(类型为CardLayout $Card)给定的名称.如你所见,这看起来像一个黑客,如果有一天CardLayout被重构,它可能会破坏(目前的实施非常难看).

最好的方法是直接跟踪Set< String>中所有已添加子项的名称.在某个地方.无论如何,这真的不是什么大不了的事.

标签:cardlayout,java,swing
来源: https://codeday.me/bug/20190730/1578421.html