我做了这样的事情:定义一个 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)
谁能教教我如何实现,非常感谢!