如何创建包含不同JavaFx任务的类?

时间:2019-04-26 09:23:15

标签: java javafx task

因此,我正在将JavaFX任务用于从在线服务获取数据的各种方法中-这会花费一些时间,所以我不希望UI冻结。

为完成任务,我为每个任务创建了一个单独的类,以供应用程序中的其他类调用。

但是,我想从在线服务中获得许多不同类型的内容,并且我不想为每个类创建一个新的类。我在网上看到的所有Tasks实现都将它们作为类。

我可以有一个包含许多任务的“ NetworkTasks”类吗?与许多单独的Task类文件相比,这将更加整洁和易于使用。

编辑:Task类的示例。当使用返回名称列表的外部网络类给定名称时,它将查找用户名列表。这可能会花费一些时间,因此如果它不是Task,则会冻结UI

public class NameLookupTask extends Task<ArrayList<Label>> {


public UsernameSearchTask(NetworkClient client, String name) {
    this.client = client;
    this.name= name;
}

@Override
protected ArrayList<Label> call() throws Exception {
    String[] userMessages;
    userMessages = client.getMessages().getName();
    System.out.println(userMessages.length);
    ArrayList<Label> newNames= new ArrayList();
    if (userMessages.length != 0) {
        for (int i = 0; i < userMessages.length; i++) {
            Label newName= new Label(name);
            newMessages.add(newMessage);
            updateProgress(i, userMessages.length);
        }
    } else {
        this.cancel(true);
    }
    return newNames;
}

}

我希望有多个这样的任务,但是对于其他数据,只需获取数据并转换为UI元素即可。可以全部放在一个类文件中吗?

0 个答案:

没有答案