【发布时间】:2019-10-17 20:16:07
【问题描述】:
我正在尝试创建动画,但没有使用 TranslateTransition 等内置功能。在 Anchor Pane 上,我创建了一个圆圈,我希望它沿着这样的线不断移动:
public void initialize() {
MyThread task = new MyThread();
new Thread(task).start();
}
class MyThread extends Task<Integer>
{
@FXML
Circle myCircle;
@Override
protected Integer call() throws Exception
{
int i= 737; //starting position
while(true)
{
((Node) myCircle).setLayoutX(i);
i--;
if(i%109==0) //ending position
i=737;
}
}
}
但它根本不动。我是 javaFX 线程的新手,所以我真的不知道我做错了什么。但是当我像这样打印一些数字时,它工作得很好:
class MyThread extends Task<Integer>
{
@Override
protected Integer call() throws Exception
{
for(int i=0; i<10;i++)
{
count(i);
count10(i);
}
protected void count(int i)
{
System.out.println(i);
}
protected void count10(int i)
{
System.out.println(10*i);
}
}
【问题讨论】:
标签: java multithreading user-interface javafx