作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
将值为 null 的项目放入 ComboBox 中的正确方法是什么?我尝试使用 myComboBox.getItems().add(null);
,它起作用了,但是每当用户在组合框中选择这个值时,控制台就会抛出一个异常:
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
at com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:136)
所以我认为这可能不是正确的做法。有什么线索吗?
最佳答案
根据我的经验,这是 Java 8u20 引入的问题。在 Java 8u05 和 8u11 以及 JavaFX 2.x 中,您可以将 null
添加到项目列表中,并按预期方式选择该项目。在 Java 8u20 中,无论何时选择 null
值,您都会得到一个 java.lang.IndexOutOfBoundsException
。
Benjamin Gale:您必须使用 Java 8u20,在 ComboBox 中选择一个项目,然后选择 null
值才能看到问题。
目前,最好的选择似乎是创建一个特殊的 null
对象并适本地标记它,如前所述。
或者,如果您可以改用 ChoiceBox,我想您会发现它可以按照您想要的方式工作。
关于java - JavaFX 组合框上的 "No select item"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25877323/
我是一名优秀的程序员,十分优秀!