Java - (Avanzado) Threads y listeners

 
Vista:

(Avanzado) Threads y listeners

Publicado por Reinhold Main (3 intervenciones) el 12/07/2003 00:38:29
Resulta que tengo un applet con un jTextPane y es cargado con el metodo ".setPage(URL)"., para luego ser impreso y dibujado en el Graphics del método "print() del PrinterJob".

El problema que tengo es que:
Cuando dibujo el jTextPane con el setPage(URL), este todavia no ha terminado de bajar la pagina para mostrarla, pero a la vez el siguiente proseso sigue su curso imprimiendo una página en blanco (ya que todavia no ha bajado de la url el jTextPane).

Opte por hacer esto:
//******************************
URL $url = new URL("www.google.cl");
jTextPane1.setPage($url);

// Creo un ciclo infinito
while ($status == 0){
repaint();
Thread.sleep(1000);
}

// Y esto es un listener para el jTextPane (PropertyChangeListener)
//*******************************
jTextPane1.addPropertyChangeListener(
new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {

if (evt.getPropertyName().equals("page")) {
//Cuando evt... vale "page" es por que termino de bajar la pagina
PrinterJob printJob = PrinterJob.getPrinterJob ();
printJob.setPrintable (this);
repaint();
if (printJob.printDialog()) {
try {
printJob.print();
} catch (Exception PrintException) {
PrintException.printStackTrace();
}
} // if
$status = 1; // <= esto es para que salga del ciclo infinito
} //if
}
});
// FIN *****************************

MI PROBLEMA :
Cuando creo el ciclo infinito para que el Thread principal se detenga hasta que el Thread del listener termine,.. el applet me queda congelado y blanco, y cuando voy a pintar el graphics del metodo print, lo pinta todo blanco.

PREGUNTA:
conocen otra solucion?, probe poniendo repaint() en todas partes, y nada, existira otra manera de parar el tread principal y activarlo cuando el listener termine?.

Gracias.

Atte. Reinhold Main ([email protected])
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:(Avanzado) Threads y listeners

Publicado por Oscar (661 intervenciones) el 12/07/2003 07:22:07
Intenta agregar un HyperlinkEvent al jtextfield para saber cuando se cargo el url
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar