我想创建自定义textfieldtablecell,即重复行为单元格textfieldtablecell,但允许替换子元素textfield的上下文菜单。我写了手机工厂:
tableColumn.setCellFactory(new Callback<TableColumn<TableData, Double>, TableCell<TableData, Double>>() {
@Override
public TableCell<TableData, Double> call(TableColumn<TableData, Double> param) {
var tc = new TextFieldTableCell<TableData, Double>(new CustomDoubleStringConverter());
var contextMenu = new ContextMenu();
var itemsMenu = TextFieldContextMenuCreator.createDefaultMenuItemsTextField((TextField)tc.getGraphic(), resources);
contextMenu.getItems().addAll(itemsMenu);
((TextField)tc.getGraphic()).setContextMenu(contextMenu);
return tc;
}
});
但是,方法 getGraphics()
始终返回 null
. 这个怎么样?
1条答案
按热度按时间mzillmmw1#
根据kleopatra的建议,我在javafx源代码的帮助下创建了自定义textfield单元类。它在我使用内部textfield,在他的创建过程中,我为他创建了必要的上下文菜单。