我查看了文档,但找不到答案...显然,如果字段数太高,使用JComboBox变得不切实际,但从理论上讲,JComboBox的所有内容都是如此最大字段数?
答案 0 :(得分:2)
setSelectedIndex(...)
和getItemAt(...)
等方法将int
变量作为参数。这表明ComboBoxModel
可以支持INTEGER.MAX_VALUE项的“理论”最大值。
但是,项目也必须呈现并最终显示在JScrollPane中。滚动窗格和垂直JScrollBar也使用int
变量来指定滚动条的像素位置。
因此,您还必须考虑滚动窗格中每个渲染项目的高度。
因此,使用标准Swing组件的更合理的“理论”最大值将是INTEGER.MAX_VALUE / rendered-row-height。
但是,我想你可以创建一个自定义滚动窗格,只显示块中的项目。因此,当您向一个块的末尾滚动时,您会预加载下一个块。从理论上讲,这将允许您在组合框中显示所有INTEGER.MAX_VALUE项。
我不知道“理论上”最大数量的项目是否会有任何其他限制。
在任何情况下,我都确定我们都同意,在达到“理论”最大值之前,组合框将无法使用。
答案 1 :(得分:0)
据我所知,就像你说如果最终不得不滚动太多而使用其他界面工具可能会更有用。我的理由是因为您可以动态填充它,这需要像您的数据一样灵活。