https://www.it1352.com/1001336.html
方法getDestiny(),因为它表示返回特定航班的命运因为很明显我不能使用最后一条指令,它说"无法从String转换为ObservableValue",但我真的不知道如何解决它以便能够显示该列的命运。谢谢大家。
解决方案
Ad by Valueimpression
根据 Javadocs , setCellValueFactory(...)期望 Callback< CellDataFeatures< Flight,String>,ObservableValue< String>> ,即采用 CellDataFeatures< Flight,String> 作为参数,并产生 ObservableValue< String> 。
正如错误消息所示,您的函数求值为字符串( cellData.getValue ()。getDestiny()),这是不正确的类型。
根据您的实际要求,您有两种选择。
您可以动态创建类型正确的东西:最简单的方法是使用 ReadOnlyStringWrapper :
destinoCol.setCellValueFactory(cellData - > new ReadOnlyStringWrapper(cellData.getValue()。getDestiny()));
这将显示正确的值,但不会很好地"连线"到该属性飞行物体。如果您的表是可编辑的,编辑将不会自动传播回基础对象,并且从其他地方对基础对象的更改将不会自动更新到表中。
如果你需要这个功能(这可能是一个更好的方法),你应该实现你的模型类 Flight 来使用 JavaFX属性:
public class Flight { private final StringProperty destiny = new SimpleStringProperty(); public StringProperty destinyProperty(){ return destiny; } public final String getDestiny(){ return destinyProperty()。get(); } public final void setDestiny(String destiny){ destinyProperty()。set(destiny); } //同样适用于其他房产... }
然后你可以做
destinoCol.setCellValueFactory(cellData - > cellData.getValue()。destinyProperty ());