Javafx 从组合框中的对象中选择值

Javafx 从组合框中的对象中选择值,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,我有一个Java对象,我想用这段代码编辑它。我想从这个obj.getSizeBetweenMessages()中得到的值是10: ObservableList zoptionsm=FXCollections.observableRayList( obj.getSizeBeweenMessages(),90); ComboBox zcombom=新的ComboBox(zoptionsm); zcombom.getSelectionModel().select(obj.getSizeBeweenMe

我有一个Java对象,我想用这段代码编辑它。我想从这个obj.getSizeBetweenMessages()中得到的值是10:

ObservableList zoptionsm=FXCollections.observableRayList(
obj.getSizeBeweenMessages(),90);
ComboBox zcombom=新的ComboBox(zoptionsm);
zcombom.getSelectionModel().select(obj.getSizeBeweenMessages());
zcombom.setEditable(真);
gpm.add(zcombom,1,1);

由于某些原因,组合框为空,并且不显示对象中的值。你能告诉我我错在哪里吗?

如果你的
getSizeBeweenMessages()
方法返回的是一个int(不是整数),那么当你将结果传递给
FXCollections.observableArrayList(…)
zcombom.getSelectionModel().select(…)
时,你都依赖于自动装箱。在第一种情况下,这是可行的,因为没有合适的
observearraylist(…)
方法接受int,但在第二种情况下,有一个
select(…)
方法接受int,这就是被调用的方法。因此,如果
getSizeBetweenMessages()
返回10,那么您将尝试选择位置10处的项目(而不是项目10本身),因为这超出了范围,所以不会选择任何内容

修复方法是手动创建一个
Integer
对象:

Integer sizeBetweenMessages = new Integer(obj.getSizeBetweenMessages());
ObservableList<Integer> zoptionsm = FXCollections.observableArrayList(
            sizeBetweenMessages, 90);
        ComboBox<Integer> zcombom = new ComboBox<>(zoptionsm);
        zcombom.getSelectionModel().select(sizeBetweenMessages);
        zcombom.setEditable(true);
        gpm.add(zcombom, 1, 1);
Integer-sizeBetweenMessages=新整数(obj.getSizeBetweenMessages());
ObservableList zoptionsm=FXCollections.observableArrayList(
消息之间的大小,90);
ComboBox zcombom=新的ComboBox(zoptionsm);
zcombom.getSelectionModel().select(SizeBeweenMessages);
zcombom.setEditable(真);
gpm.add(zcombom,1,1);

Autoboxing有时很方便,但方法重载并不好用<代码>列表编号=新的ArrayList(Arrays.asList(1,2,3));数字。删除(3)是一个典型的例子。
Integer sizeBetweenMessages = new Integer(obj.getSizeBetweenMessages());
ObservableList<Integer> zoptionsm = FXCollections.observableArrayList(
            sizeBetweenMessages, 90);
        ComboBox<Integer> zcombom = new ComboBox<>(zoptionsm);
        zcombom.getSelectionModel().select(sizeBetweenMessages);
        zcombom.setEditable(true);
        gpm.add(zcombom, 1, 1);