JavaFX服务启动时的触发器事件

JavaFX服务启动时的触发器事件,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,我想在服务启动时执行Java代码,但我找不到合适的Java方法: service.setOnRunning(new EventHandler<WorkerStateEvent>() { @Override public void handle(WorkerStateEvent t) { Start some logic } }); service.setOnSucceeded(new EventHandler<WorkerSt

我想在服务启动时执行Java代码,但我找不到合适的Java方法:

service.setOnRunning(new EventHandler<WorkerStateEvent>()
{
    @Override
    public void handle(WorkerStateEvent t)
    {
         Start some logic
    }
});

service.setOnSucceeded(new EventHandler<WorkerStateEvent>()
{
    @Override
    public void handle(WorkerStateEvent t)
    {
         Stop some logic
    }
});
service.setOnRunning(新的EventHandler()
{
@凌驾
公共无效句柄(WorkerStateT事件)
{
开始一些逻辑
}
});
setOnSucceeded(新的EventHandler()
{
@凌驾
公共无效句柄(WorkerStateT事件)
{
停止一些逻辑
}
});

如何在服务启动时只调用一次Java方法?

您可以轻松控制
服务
启动时间,因此没有特殊的方法

只需将希望在开始时运行的任何代码添加到
call
方法:

private class MyService extends Service<Void> {

    @Override
    protected Task<Void> createTask() {
        return new Task<Void>() {
            @Override
            protected Void call() throws Exception {
                // "onStart" code
                System.out.println("Service started");
                // actual service code

                //do stuff
                return null;
            }
        };
    }
}
私有类MyService扩展服务{
@凌驾
受保护的任务createTask(){
返回新任务(){
@凌驾
受保护的Void调用()引发异常{
//“onStart”代码
System.out.println(“服务已启动”);
//实际服务代码
//做事
返回null;
}
};
}
}

这些方法确实存在,您的问题是什么?