gpt4 book ai didi

java - CardLayout 性能?

转载 作者:行者123 更新时间:2023-11-30 07:22:34 24 4
gpt4 key购买 nike

我认为 CardLayout 使用 HashMap 来存储它的对(面板和关联的字符串标识符),但通过查看 CardLayout 类我注意到它实际上使用了 Vector。我是这样理解的:当 show 方法被调用时,它循环遍历 vector 的内容,用 equals 来检查这是否是适当卡片的名称,如果是,则循环遍历容器的所有面板以找出当前可见的面板,将其隐藏,然后显示适当的卡片。

如果我正在制作一个具有很多不同面板的 gui 应用程序,那么翻转到所需面板的技术不是很慢吗?我是否应该更好地使用自己的方式来显示我的面板,例如将它们存储到数组中并手动使用 add/removesetVisible 而不是使用 CardLayout ?这实际上是我在开始使用 CardLayout 之前使用的方式。

最佳答案

永远不会成为问题:您通常不会非常频繁地在组件之间切换,而当您这样做时,然后扫描一个包含少量组件(通常是 3-100?)的列表是与必须发生的其他操作(例如绘制新组件)相比,将花费的时间可以忽略不计。从性能的角度来看,数据结构的选择基本上是无关紧要的——您可以使用链表,而且没有人会注意到。

另请注意,HashMap 不适合 CardLayout,因为它需要保留卡片的顺序,以便您可以首先/next/previous

所以基本上,不用担心,也不要浪费时间制作自己的 CardLayout 克隆版 - CardLayout 工作得很好。

关于java - CardLayout 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610911/

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