javafx.concurrent.Worker类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(131)

本文整理了Java中javafx.concurrent.Worker类的一些代码示例,展示了Worker类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Worker类的具体详情如下:
包路径:javafx.concurrent.Worker
类名称:Worker

Worker介绍

暂无

代码示例

代码示例来源:origin: io.datafx/core

public static <V> BooleanBinding isFinishedProperty(Worker<V> worker) {
  return worker.stateProperty().isEqualTo(Worker.State.CANCELLED).or(worker.stateProperty().isEqualTo(Worker.State.FAILED).or(worker.stateProperty().isEqualTo(Worker.State.SUCCEEDED)));
}

代码示例来源:origin: org.controlsfx/controlsfx

public final void setWorker(final Worker<?> newWorker) { 
  if (newWorker != worker) {
    if (worker != null) {
      worker.stateProperty().removeListener(stateListener);
      end();
    }
    worker = newWorker;
    if (newWorker != null) {
      newWorker.stateProperty().addListener(stateListener);
      if (newWorker.getState() == Worker.State.RUNNING || newWorker.getState() == Worker.State.SCHEDULED) {
        // It is already running
        begin();
      }
    }
  }
}

代码示例来源:origin: io.datafx/core

public static <T> void then(Worker<T> worker, Consumer<T> consumer) {
  ReadOnlyBooleanProperty doneProperty = createIsDoneProperty(worker);
  ChangeListener<Boolean> listener = (o, oldValue, newValue) -> {
    if (newValue) {
      consumer.accept(worker.getValue());
    }
  };
  doneProperty.addListener(listener);
}

代码示例来源:origin: stackoverflow.com

worker.execute();
worker.cancel(true);
  worker.get();
} catch (CancellationException e) {
  System.out.println("CancellationException properly thrown");

代码示例来源:origin: net.sf.sf3jswing/kernel-core

public void run() {
    browser.webEngine.getLoadWorker().progressProperty().addListener(new ChangeListener<Number>() {
      public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
        if (browser.webEngine.getLoadWorker().getProgress() != -1) {
          progressBar.setValue((int) Math.round(browser.webEngine.getLoadWorker().getProgress() * 100.));
        }
      }
    });
    browser.webEngine.getLoadWorker().runningProperty().addListener(new ChangeListener<Boolean>() {
      public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
        progressBar.setVisible(t1);
      }
    });
  }
};

代码示例来源:origin: org.apache.jmeter/ApacheJMeter_components

private void createScene(final String htmlContent) {
  Platform.setImplicitExit(false);
  Platform.runLater(() -> {
      WebView view = new WebView();
      engine = view.getEngine();
      engine.setOnStatusChanged(event -> SwingUtilities.invokeLater(() -> lblStatus.setText(event.getData())));
      engine.getLoadWorker().workDoneProperty()
          .addListener((ChangeListener<Number>) (observableValue, oldValue, newValue) -> SwingUtilities
              .invokeLater(() -> progressBar.setValue(newValue.intValue())));
      engine.getLoadWorker().exceptionProperty()
          .addListener((ObservableValue<? extends Throwable> o,
              Throwable old, final Throwable value) -> {
              if (engine.getLoadWorker().getState() == State.FAILED) {
                SwingUtilities.invokeLater(() -> JOptionPane
                    .showMessageDialog(
                        resultsScrollPane,
                        (value != null) ? engine
                            .getLocation()
                            + "\n"
                            + value.getMessage()
                            : engine.getLocation()
                                + "\nUnexpected error.",
                        "Loading error...",
                        JOptionPane.ERROR_MESSAGE));
              }
          });
      jfxPanel.setScene(new Scene(view));
  });
}

代码示例来源:origin: org.controlsfx/controlsfx

public ProgressDialog(final Worker<?> worker) {
  if (worker != null
      && (worker.getState() == State.CANCELLED
      || worker.getState() == State.FAILED
      || worker.getState() == State.SUCCEEDED)) {
    return;
  progressMessage.textProperty().bind(worker.messageProperty());

代码示例来源:origin: brunoborges/webfx

@Override
public void stop() {
  webEngine.getLoadWorker().cancel();
}

代码示例来源:origin: org.controlsfx/controlsfx

public WorkerProgressPane(ProgressDialog dialog) {
  this.dialog = dialog;
  
  this.progressBar = new ProgressBar();
  progressBar.setMaxWidth(Double.MAX_VALUE);
  getChildren().add(progressBar);
  
  if (worker != null) {
    progressBar.progressProperty().bind(worker.progressProperty());
  }
}

代码示例来源:origin: io.datafx/core

public <T> void observeWorker(Worker<T> worker) {
  worker.exceptionProperty().addListener((ob, ol, e) -> setException(e));
}

代码示例来源:origin: com.machinepublishers/jbrowserdriver

if (context.get().item().statusCode.get() == 0) {
 AppThread.exec(() -> {
  context.get().item().engine.get().getLoadWorker().cancel();
  throw new TimeoutException(
      "Timeout of " + context.get().timeouts.get().getPageLoadTimeoutMS() + "ms reached.");

代码示例来源:origin: org.controlsfx/controlsfx

private void begin() {
  // Platform.runLater needs to be used to show the dialog because
  // the call begin() is going to be occurring when the worker is
  // notifying state listeners about changes.  If Platform.runLater
  // is not used, the call to show() will cause the worker to get
  // blocked during notification and it will prevent the worker
  // from performing any additional notification for state changes.
  //
  // Sine the dialog is hidden as a result of a change in worker
  // state, calling show() without wrapping it in Platform.runLater
  // will cause the progress dialog to run forever when the dialog
  // is attached to workers that start out with a state of READY.
  //
  // This also creates a case where the worker's state can change
  // to finished before the dialog is shown, resulting in an
  // an attempt to hide the dialog before it is shown.  It's
  // necessary to track whether or not this occurs, so flags are
  // set to indicate if the dialog is visible and if if the call
  // to show should still be allowed.
  cancelDialogShow = false;
  Platform.runLater(() -> {
    if(!cancelDialogShow) {
      progressBar.progressProperty().bind(worker.progressProperty());
      dialogVisible = true;
      dialog.show();
    }
  });
}

代码示例来源:origin: org.netbeans.html/net.java.html.boot.fx

private boolean checkValid() {
  final String crnt = view.getEngine().getLocation();
  if (previous != null && !previous.equals(crnt)) {
    w.stateProperty().removeListener(this);
    return false;
  }
  previous = crnt;
  return true;
}

代码示例来源:origin: io.datafx/core

public static ReadOnlyBooleanProperty createIsDoneProperty(Worker<?> worker) {
    final BooleanProperty property = new SimpleBooleanProperty();
    Consumer<Worker.State> stateChecker = (s) -> {
      if (s.equals(Worker.State.CANCELLED) || s.equals(Worker.State.FAILED) || s.equals(Worker.State.SUCCEEDED)) {
        property.setValue(true);
      } else {
        property.setValue(false);
      }
    };
    worker.stateProperty().addListener((o, oldValue, newValue) -> stateChecker.accept(newValue));
    stateChecker.accept(worker.getState());
    return property;

  }
}

代码示例来源:origin: org.copper-engine/copper-monitoring-client

@Override
  public void handle(WorkerStateEvent event) {
    try {
      @SuppressWarnings("unchecked")
      FilterAbleForm.ResultFilterPair<F, R> result = (FilterAbleForm.ResultFilterPair<F, R>) event.getSource().getValue();
      filterResultController.showFilteredResult(result.result, result.usedFilter);
    } catch (Exception e) {
      exceptionHandler.reportError(e);
    }
  }
});

代码示例来源:origin: com.machinepublishers/jbrowserdriver

/**
 * Reset the state of the browser. More efficient than quitting the
 * browser and creating a new instance.
 * 
 * @param settings
 *          New settings to take effect, superseding the original ones
 */
public void reset(final Settings settings) {
 AppThread.exec(() -> {
  context.get().item().engine.get().getLoadWorker().cancel();
  return null;
 });
 Accessor.getPageFor(context.get().item().engine.get()).stop();
 ((CookieStore) CookieManager.getDefault()).clear();
 StatusMonitor.instance().clear();
 LogsServer.instance().clear(null);
 SettingsManager.register(settings);
 context.get().reset(this);
}

代码示例来源:origin: org.netbeans.html/net.java.html.boot.fx

private boolean checkValid() {
    final String crnt = webView.getEngine().getLocation();
    if (previous != null && !previous.equals(crnt)) {
      w.stateProperty().removeListener(this);
      return false;
    }
    previous = crnt;
    return true;
  }
});

代码示例来源:origin: stackoverflow.com

WebEngine webEngine = webView.getEngine();
Worker worker = webEngine.getLoadWorker();
worker.stateProperty().addListener((Observable o) -> {
  if (worker.getState() == Worker.State.SUCCEEDED) {
    EventQueue.invokeLater(() -> {
      table.setModel(new AbstractTableModel() {

代码示例来源:origin: com.powsybl/powsybl-gse-afs-ext-base

private void updateScript() {
  scriptUpdateService = GseUtil.createService(new Task<String>() {
    @Override
    protected String call() {
      return storableScript.readScript();
    }
  }, context.getExecutor());
  progressIndicator.visibleProperty().bind(scriptUpdateService.runningProperty());
  codeEditor.disableProperty().bind(scriptUpdateService.runningProperty());
  scriptUpdateService.setOnSucceeded(event -> {
    String scriptContent = (String) event.getSource().getValue();
    codeEditor.setCode(scriptContent);
    saved.set(true);
  });
  scriptUpdateService.start();
}

代码示例来源:origin: PhoenicisOrg/phoenicis

@Override
public void waitForBeingLoaded() {
  final Semaphore lock = new Semaphore(0);
  Platform.runLater(() -> webView.getEngine().getLoadWorker().stateProperty()
      .addListener(((observableValue, oldState, newState) -> {
        if (newState == Worker.State.SUCCEEDED) {
          lock.release();
        }
      })));
  try {
    lock.acquire();
  } catch (InterruptedException e) {
    this.messageWaitingForResponse.sendCancelSignal();
  }
}

相关文章