我注意到一个奇怪的NPE在TreeTableView
如果在表中双击不存在行,则会发生这种情况。附上一张截图来显示我的意思。
我纯粹来自JavaFx,它与我的代码无关。我也做了一个研究,没有发现任何与此相关的内容。
下面是一个简单的代码来重现它:
控制器:
public class Controller implements Initializable {
@FXML
private TreeTableColumn<Model, String> column;
@FXML
private TreeTableView<Model> treeTable;
@Override
public void initialize(URL location, ResourceBundle resources) {
TreeItem<Model> root = new TreeItem<>(new Model("Root"));
treeTable.setRoot(root);
column.setCellValueFactory(value -> value.getValue().getValue().textProperty());
}
private class Model {
private StringProperty text;
Model(String text) {
this.text = new SimpleStringProperty(text);
}
public StringProperty textProperty() {
return text;
}
public String getText() {
return text.get();
}
@Override
public String toString() {
return getText();
}
}
}
.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TreeTableColumn?>
<?import javafx.scene.control.TreeTableView?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="stackoverflow.treeview.Controller">
<TreeTableView fx:id="treeTable">
<columns>
<TreeTableColumn fx:id="column" text="Test"/>
</columns>
</TreeTableView>
</AnchorPane>
如果在红色区域中双击,则会引发 NPE。
作为解决方案,我会接受任何真正有效的解决方法或任何解释/ javafx错误报告,表明他们正在研究它,或者在以下版本中有一个修复程序。
茅侃侃
相关分类