我正在使用javaFX + java编写的Omaha在线扑克客户端。JavaFX:任务不会更新UI
我需要在control.call()
完成执行后显示包含3个按钮的anchorPane。 我知道一个事实,即control.call()完成执行但由于某种原因task.setOnSucceeded(new EventHandler() {
的处理方法不更新用户界面。
我在做什么错?
public void newRound() {
sog = StateOfGame.PREFLOP;
ControlGameOnNewThread control = new ControlGameOnNewThread();
Task task = new Task() {
@Override
protected Object call() throws Exception {
control.call();
return null;
}
};
task.setOnSucceeded(new EventHandler() {
@Override
public void handle(Event event) {
if (client.getAction() == FirstToAct.me) {
System.out.println("Task finsished");
showOptions(client.getToCall());
opponentBetField.setText(new Integer(opp.chipsInvested).toString());
myBetField.setText(new Integer(client.chipsInvested).toString());
System.out.println("Task finsished");
}
}
});
new Thread(task).start();
}
您确定您的'call(...)'方法成功了,而不是抛出异常吗?尝试使用'task.getException()。printStackTrace()'注册一个'setOnFailed(...)'处理程序来查看是否抛出了一些东西。 –