如何使JavaFX服务中的任务不断地接受参数?
我正在调用JavaFX服务中的一个任务做一些事情,问题是这个服务中的方法只从UI元素获取一次参数 代码:如何使JavaFX服务中的任务不断地接受参数?,java,java-8,concurrency,task,Java,Java 8,Concurrency,Task,我正在调用JavaFX服务中的一个任务做一些事情,问题是这个服务中的方法只从UI元素获取一次参数 代码: public void DoSomething(){//单击按钮时调用此方法 ExampleService s=新的ExampleService(); s、 setValue1(s1.getValue());//s1,s2-UI元素 s、 setValue2(s2.getValue()); s、 start(); }; 私有静态类ExampleService扩展服务{ 双重价值1,价值2;
public void DoSomething(){//单击按钮时调用此方法
ExampleService s=新的ExampleService();
s、 setValue1(s1.getValue());//s1,s2-UI元素
s、 setValue2(s2.getValue());
s、 start();
};
私有静态类ExampleService扩展服务{
双重价值1,价值2;
公共双getValue1(){
返回值1;
}
public void setValue1(双值1){
此值为1.value1=value1;
}
公共双getValue2(){
返回值2;
}
公共无效设置值2(双值2){
此参数为0.value2=value2;
}
@凌驾
受保护的任务createTask(){
返回新任务(){
最终双v1=值1;
最终双v2=值2;
@凌驾
受保护对象调用()引发异常{
而(!isCancelled())
ExampleMethod(v1,v2);//我希望此方法在每次迭代时从UI元素获取参数
返回null;
}
};
}
}
如何使方法在每次迭代时从UI元素获取参数?我尝试在方法DoSomething()
中创建任务,但这阻止了UI(老实说,这不是一个好主意…受保护的任务createTask(int I,int j){
返回新任务(){
@凌驾
受保护的Void调用()引发异常{
而(!isCancelled()){
新方法(i,j);
}
返回null;
}
};
}
有一些例子。你说的“不断获取参数”是什么意思?一个接一个地从一些队列中获取它们?@AlexeiKaigorodov我的意思是从UI中获取值作为参数(例如从滑块)@VGR是的,但我想从UI中获取值,但我从文档中找不到如何不断地从UI中获取值作为参数:/constance,比如定期?每x秒还是每毫秒?
protected Task<Void> createTask(int i, int j) {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
while(!isCancelled()) {
new InnerMethod(i, j);
}
return null;
}
};
}