我浏览了文档,但找不到答案...显然,如果字段数量变得太多,使用 JComboBox 就变得不切实际,但理论上,JComboBox 是否有最大字段数?
最佳答案
诸如 setSelectedIndex(...)
和 getItemAt(...)
之类的方法采用 int
变量作为参数。这表明 ComboBoxModel
可以支持“理论”最大 INTEGER.MAX_VALUE 项。
但是,这些项目还必须渲染并最终显示在 JScrollPane 中。滚动 Pane 和垂直 JScrollBar 还使用 int
变量来指定滚动条的像素位置。
因此,您还必须考虑滚动 Pane 中每个渲染项目的高度。
因此,使用标准 Swing 组件的更合理的“理论”最大值将为 INTEGER.MAX_VALUE/render-row-height。
但是,我想您可以创建一个自定义滚动 Pane ,仅显示 block 中的项目。因此,当您滚动到一个 block 的末尾时,您会预加载下一个 block 。理论上,这将允许您在组合框中显示所有 INTEGER.MAX_VALUE 项。
我不知道“理论”最大项目数是否还有其他限制。
无论如何,我确信我们都同意,在达到“理论”最大值之前,组合框将变得无法使用。
关于java - JComboBox 是否有最大字段数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31817241/