JavaFX faire une pause pendant pour la boucle SANS utiliser de Fil.Sleep()

Je suis ce codage en JavaFX à l'aide d'un FXMLController et la scène du générateur.
Je suis en train de créer un Instagram "liker" la plupart du temps juste pour la pratique en tant que je suis en Informatique, et j'aime tout simplement de codage.

Ma question est, j'ai une boucle de "j'aime" 20 photos pour chaque hashtag, j'ai évidemment besoin d'un retard ou je serais banni plutôt rapidement. L'utilisateur peut choisir le retard, alors je aléatoire de ce délai il n'est pas trop robotique.

La seule façon que j'ai pu utiliser ce retard est à travers le fil.méthode sleep, mais depuis que je suis de codage sur la FXMLController, il gèle l'ensemble de l'INTERFACE utilisateur, et en quelque sorte s'arrête d'autres textareas d'être mis à jour. Ce n'est évidemment pas idéal.

Je l'ai cherché partout, essayant de trouver une alternative à cela, mais je ne peux pas trouver quelque chose qui fonctionne dans mon programme.

Que je vais donner à l'ensemble de la méthode:

    private void start() {
    sleepWhen();
    tagNumber++;
    int delays = Integer.valueOf(delay.getText());
    delays = delays * 1000;
    if (loaded) {
        runTime.clear();
        runTime.appendText("Liking...");
        for (int i = 0; i < 20; i++) {
            webEngine.executeScript("document.getElementsByClassName('btn btn-default btn-xs likeButton')[" + i + "].click()");
            try {
                double random = Math.random() * 1000;
                random = random + delays;
                delays = (int) random;
                System.out.println(delays);
                likes++;
                likesNumber.clear();
                likesNumber.appendText(String.valueOf(likes));
                System.out.println(String.valueOf(likes));
                Thread.sleep(delays);
                delays = Integer.valueOf(delay.getText());
                delays = delays * 1000;

            } catch (InterruptedException ex) {
                //do nothing
            }

            System.out.println("tag number" + tagNumber + "numbertags" + numberTags);
            if (!sleep) {
                if (tagNumber < numberTags) {
                    System.out.println("Loading tag:" + tagNumber);
                    loadTag(tagNumber);
                }
            }
        }
    }
}

Ce aime 20 photos, alors en charge un autre hashtag, et se répète.

L'aide de ce serait super, merci.

InformationsquelleAutor user3513071 | 2014-05-28