Sou novo na programação java, estou criando um código que pega um arquivo PDF em um diretório, e simplesmente imprimi. Só que eu preciso ficar monitorando se o arquivo está presente e pra isso eu criei um loop infinito. Até ai tudo bem, só que eu preciso de um tela informando que foi impresso, eu criei a tela só que ela trava quando o loop inicial.
Estou usando o netbeans para criar a interface gráfica,
Se você não estiver usando thread, a tela irá mesmo travar se o loop infinito estiver executando.
A
Antonybr1
publicStringPrintNow(StringImp,StringDiretorio)throwsIOException,PrinterException,InterruptedException{imp=Imp;while(Control){Thread.sleep(2000);intresult=CopyFile.copyFile();if(result==0){System.out.println("Arquivo Não Encontrado!!!");}else{System.out.println("Arquivo Encontrado!!!");FileInputStreamfis=newFileInputStream(Diretorio);PrintPdfprintPDFFile=newPrintPdf(fis,"imprimir.pdf");printPDFFile.print();Control=false;}}returnnull;}
L
Lucas_Camara
A tela que você quer imprimir seria PrintPdf?
A
Antonybr1
Sim!
A
Antonybr1
Mas desconsidera o controle=false dentro do loop que eu tava pedindo pra ele parar, mas a intenção é ele ser infinito!
L
Lucas_Camara
Seu código está bem estranho. De qualquer forma, para apresentar a tela, você pode tirar de dentro do while o código que chama o frame, assim:
publicStringPrintNow(StringImp,StringDiretorio)throwsIOException,PrinterException,InterruptedException{imp=Imp;while(Control){Thread.sleep(2000);intresult=CopyFile.copyFile();if(result==0){System.out.println("Arquivo Não Encontrado!!!");}else{break;}}System.out.println("Arquivo Encontrado!!!");FileInputStreamfis=newFileInputStream(Diretorio);PrintPdfprintPDFFile=newPrintPdf(fis,"imprimir.pdf");printPDFFile.print();returnnull;}
O problema, é que, quando ele encontrar o arquivo, a tela deverá abrir, porém, o laço irá parar. Se sua intenção é que o laço continue executando, mesmo depois que o arquivo seja encontrado, então você terá que montar um esquema um pouco melhor, de preferência, usando thread.
A
Antonybr1
Esse é o meu codigo de imprmir, Quem chama ele é um Jbutton.