Java - jDialog que se cuelga

 
Vista:

jDialog que se cuelga

Publicado por ED (7 intervenciones) el 11/09/2006 18:12:33
Hola,

Estoy usando un jDialog para diseñar y imprimir un documento, con print, el problema que tengo es que cuando se abre este diálogo, se imprima o no, luego no puedo cerrarlo, no toam el foco, se queda ahí como colgado, la máquina me pita cuando le doy click ya sea para cerrarlo o en la barra de título, lo único que puedo hacer para cerrarlo es cerrar el frame padre, pero eso no es lo que quiero, me pueden ayudar?

Gracias
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:jDialog que se cuelga

Publicado por Danilo Juvinao (278 intervenciones) el 11/09/2006 21:53:15
Hola. me gustaria saber como estas imprimiendo. asi como lo entiendo es directamente con printjob. cuando capturas el printjob debes seguramente tener una instruccion como esta:
Toolkit.getDefaultToolkit().getPrintJob(MiFormulario, "Imprimir Documento", null);

Fijate si estas referenciando bien a tu formulario, porque quiza le estas dando como parent de formulario al principal y no al jdialog en cuestion

exitos
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

RE:jDialog que se cuelga

Publicado por ED (7 intervenciones) el 12/09/2006 01:21:43
A VER, ESTA ES LA SENTENCIA QUE ESTOY USANDO PARA LLAMAR A LA IMPRESION:

PrintUtilities.printComponent(preview);

PREVIEW ES EL NOMBRE DE LA INSTANCIA DEL DIALOGO QUE QUIERO IMPRIMIR. Y ESTA ES LA CLASE QUE USO PARA IMPRIMIR. AYUDAME POR FAVOR

public class PrintUtilities implements Printable {
private Component componentToBePrinted;

public static void printComponent(Component c) {
new PrintUtilities(c).print();
}

public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}

public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}

public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX()/2, pageFormat.getImageableY()/2);
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}

public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}


public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
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

RE:jDialog que se cuelga

Publicado por ED (7 intervenciones) el 12/09/2006 01:22:05
A VER, ESTA ES LA SENTENCIA QUE ESTOY USANDO PARA LLAMAR A LA IMPRESION:

PrintUtilities.printComponent(preview);

PREVIEW ES EL NOMBRE DE LA INSTANCIA DEL DIALOGO QUE QUIERO IMPRIMIR. Y ESTA ES LA CLASE QUE USO PARA IMPRIMIR. AYUDAME POR FAVOR. TE AGRADEZCO DE ANTEMANO

public class PrintUtilities implements Printable {
private Component componentToBePrinted;

public static void printComponent(Component c) {
new PrintUtilities(c).print();
}

public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}

public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}

public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX()/2, pageFormat.getImageableY()/2);
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}

public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}


public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
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