java – 检查CardLayout中是否存在具有名称的卡
作者:互联网
我有一个CardLayout,我只根据需要添加卡片.因此,当需要显示特定卡(由其名称标识)时,我需要一种方法来检查具有该名称的卡是否已经存在,以便我可以相应地显示或创建它.
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