我有一个 Arc,并且喜欢在控制器类中分配事件处理程序。我在 Swing JPanel 中构建了一个 JFXPanel。我初始化的面板如下:
public void init()
{
Platform.runLater( new Runnable() {
@Override
public void run() {
try {
FXMLLoader loader = new FXMLLoader( getClass().getResource("fxml.fxml" ));
Pane myPane = (Pane) loader.load();
controller = loader.getController();
Scene scene = new Scene( myPane );
setScene( scene );
}
catch ( Exception e ) {
e.printStackTrace();
}
}
});
}
在 Controller 类中:我在 FXML 文件中声明了同名的 arc。
@FXMLprivate Arc arc;
在初始化方法中我做了:
@FXML
protected void initialize()
{
arc.setOnMouseClicked( new EventHandler<Event>() {
@Override
public void handle( Event event )
{
System.out.println("Evento");
}
} );
但是,该事件不会被触发。