Red de conocimiento informático - Material del sitio web - Cómo implementar la tecnología de captura de pantalla de páginas web en Java

Cómo implementar la tecnología de captura de pantalla de páginas web en Java

setScene(escena);

WebEngine final webEngine = ver .getEngine();

webEngine.load(this.getClass().getResource("web/index.html")

.toExternalForm());

primaryStage.show();

// Forma 1. Monitorear el progreso de carga de webEngine, lo que puede resultar en una página incompleta. cargando

webEngine.getLoadWorker().stateProperty()

.addListener(new ChangeListener() {

@Override

public void cambiado(ObservableValue ov,

Estado oldState, State newState) {

if (newState == State.SUCCEEDED) {

snapshot(view);

}

}

}});

// Método 2. Utilice la transición para configurar retraso

PauseTransition ptr = new PauseTransition(Duración.segundos(3));

ptr setOnFinished(new EventHandler() {

@Override.

identificador de vacío público (evento ActionEvent) {

instantánea (vista);

}

});

ptr.Play();

Tarea tarea = nueva Tarea() {

@Override

llamada de cadena protegida() lanza una excepción {

Thread.sleep(5000);

return null;

}

};

tarea .setOnSucceeded(new EventHandler() {

@Override

identificador de vacío público (evento WorkerStateEvent) {

instantánea(vista);

}

});

nuevo hilo(tarea).start();

nuevo hilo() {

public void run() {

prueba {

Thread.runLater(new Runnable() {

@Override

public void run() {

snapshot(view); // No puedes operar directamente la interfaz de usuario en el hilo de fondo, necesitas usar runLater

}

}}) ;

} captura ( Interrumpir

tedException e) {

e.printStackTrace();

}

};

}.start();

}

Instantánea de vacío público (vista de nodo) {

Imagen imagen = view.snapshot(null) {

Instantánea de vacío público (vista de nodo) ) {

Imagen imagen = view.snapshot(null)snapshot(null, null);

prueba {

ImageIO.write(SwingFXUtils.fromFXImage(imagen , nulo), "png",

nuevo archivo("f:\\" + System.currentTimeMillage).+ System.currentTimeMillis() + ".png"));

} captura (IOException e) {

e.printStackTrace();

}

}

}

}

}

}>