我试图拖动一些自定义节点 . 这些节点作为子节点添加到AnchorPane,如根FXML的Controller中所定义:
package sample;
import ...
public class Controller {
@FXML
AnchorPane anchorPane;
public void add() {
try {
// Node.fxml is the custom node object
Parent root = FXMLLoader.load(getClass().getResource("Node.fxml"));
anchorPane.getChildren().add(root);
} catch (IOException e) {
e.printStackTrace();
}
}
}
我应该在根FXML控制器内还是在可拖动节点本身的FXML控制器内处理节点拖动?
如果我应该在根FXML控制器中完成它,我该怎么做?调用FXMLLoader.Load()只引用一个FXML文件,所以我不能将鼠标事件附加到它 .
我是Java和JavaFx的新手,所以一切都很有帮助 . (然而,不是编程的初学者) .
提前致谢 .
1 回答
感谢@fabian和@Gikkman,我找到了解决问题的方法 . 我的错误是没有理解Parent扩展Node - 我以为我需要引用其他东西 .
为了实现我想要的拖动功能,我创建了一个具有Node输入变量的函数(感谢@Gikkman) - 然后这个Node对象可以附加事件处理程序 . 由于Parent扩展了Node(我没有意识到),我可以很容易地使用FXMLLoader.Load()作为输入 .
所以我有: