0

我做了这样的事情:定义一个 tablecell 扩展 TableCell,我定义一个 FXML(FXML-b) 来设计这个 tablecell 的 UI。

    class TableCell4Operater<T0, T1> extends TableCell<T0, T1> {
    .....
    public TableCell4Operater(){
    URL url = getClass().getResource("operpan.fxml");  // FXML-b
        FXMLLoader fxmlloader = new FXMLLoader();
        fxmlloader.setLocation(url);
        fxmlloader.setBuilderFactory(new JavaFXBuilderFactory());
        try {
            node = (Node) fxmlloader.load(url.openStream());
                        *// here i get the Controller from the FXML definded*
            this.controller = (OperpanController) fxmlloader.getController();
                 }
}
}

在类中我可以获取节点和控制器,但我需要在这个 TableCell 类中定义控制器方法,因为我需要控制某些对象的事件,例如按钮的 onAction() 事件,并且我还需要发布事件直到创建此 tableCell 所属表的“主要阶段”,

所有要做的只是制定目标:当我在“主舞台”上单击表格单元格(如上定义)中的按钮时,我可以在“主舞台”上更改诸如 TextField 的文本之类的内容,

所以事件转移的路径是:表格单元格中的按钮(FXML-b)->“主舞台”上的表格(FXML-a)->“主舞台”(FXML-a)

谁能教教我如何实现,非常感谢!

4

0 回答 0