Javafx 2 我们可以在JavaFx2中将一个控制器装配到一个节点上吗?

Javafx 2 我们可以在JavaFx2中将一个控制器装配到一个节点上吗?,javafx-2,javafx,Javafx 2,Javafx,我会做这样的事情: 定义一个tablecell扩展了tablecell,我定义了一个FXML(FXML-b)来设计这个tablecell的UI class TableCell4Operater<T0, T1> extends TableCell<T0, T1> { ..... public TableCell4Operater(){ URL url = getClass().getResource("operpan.fxml"); //

我会做这样的事情: 定义一个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();
                 }
}
}
类TableCell4Operater扩展了TableCell{
.....
公共表Cell4Operater(){
URL URL=getClass().getResource(“operpan.fxml”);//fxml-b
FXMLLoader FXMLLoader=新的FXMLLoader();
setLocation(url);
setBuilderFactory(新的JavaFXBuilderFactory());
试一试{
node=(node)fxmloader.load(url.openStream());
*//这里我从定义的FXML获取控制器*
this.controller=(OperpanController)fxmlloader.getController();
}
}
}
在类中,我可以得到节点和控制器, 但是我需要在这个TableCell类中定义控制器方法, 因为我需要控制一些对象的事件,比如按钮的onAction()事件, 我还需要将事件发布到创建这个tableCell所属的表的“主阶段”

所有要做的事情都是为了实现目标: 当我单击“主阶段”上表格单元格(定义见上文)中的按钮时, 我可以在“主舞台”上更改文本字段的文本等内容

因此,事件转移的道路是: 表格单元格中的按钮(FXML-b)->“主阶段”(FXML-a)上的表格)->“主阶段”(FXML-a)


谁能教我如何去实现,谢谢

为什么您不在fxml-a-controller中创建一个公共函数,并在fxml-b-controller中的按钮单击函数中调用它?但按下按钮时,这确实是一种状态变化。这可以通过控制器上的一个属性来表示,每个表单元格绑定一个属性。但是如何做到这一点,按钮在另一个fxml上,我不能引用“TableCell”中的按钮,因为“TableCell”(TableCell4Operater)被定义为一个标准类,它不是Controller-a中的内部类,我需要修改FXML-B的控制器-B的实例-更改按钮的点击操作函数,如下所示:Controller.getBtn1().setOnAction(neweventhandler(){@Override public void handle(ActionEvent事件){//TODO txttip.setText(“哈哈”);}};--还有别的办法吗。