Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TableView中的自定义TextFieldTableCell_Java_Javafx - Fatal编程技术网

Java TableView中的自定义TextFieldTableCell

Java TableView中的自定义TextFieldTableCell,java,javafx,Java,Javafx,我想创建自定义TextFieldTableCell,它重复行为单元格TextFieldTableCell,但允许在子元素TextField处使用替换上下文菜单。我写下了手机工厂: tableColumn.setCellFactory(new Callback<TableColumn<TableData, Double>, TableCell<TableData, Double>>() { @Override pu

我想创建自定义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;
            }
        });
tableColumn.setCellFactory(新回调(){
@凌驾
公共TableCell调用(TableColumn参数){
var tc=新的TextFieldTableCell(新的CustomDoubleStringConverter());
var contextMenu=新建contextMenu();
var itemsMenu=TextFieldContextMenuCreator.createDefaultMenuItemsTextField((TextField)tc.getGraphic(),参考资料);
contextMenu.getItems().addAll(itemsMenu);
((TextField)tc.getGraphic()).setContextMenu(contextMenu);
返回tc;
}
});

但是,方法
getGraphics()
总是返回
null
。这是如何实现的?

根据建议,我在JavaFX源代码的帮助下创建了自定义textfield单元格类。我使用内部文本字段,在他的创建过程中,我为他创建了必要的上下文菜单。

该图形仅在单元格的第一次编辑时设置(请参阅来源)-在可用后抓取它,在graphicProperty上安装一个一次性侦听器(即安装它,并在有图形时让它自行删除)@kleopatra Ovation。有消息来源!你可以把这当作一个答案。