Pessoal, preciso de umas dicas de como resolver um problema.
Fiz um applet (ainda em teste) que lê um arquivo no próprio HD (no futuro ele irá ler dados em um banco de dados). Neste arquivo está armazenado um sinal analógico, uma forma de onda, que como teste coloquei uma onda triangular. Segue a tela para vocês terem uma idéia no arquivo anexo.
Preciso colocar um botão na tela que imprima numa impressora padrão da máquina a tela como é exibida, com os frames, e dentro dos frames as ondas.
Estes frames eu criei usando o objeto Graphics. Pinto na tela os traçados e a moldura dos frames. Não são figuras .bmp exibidas na tela.
Segue o código do método paint():
public void paint(Graphics g) {
g.clearRect(0, 0, 1035, 760);
g.setColor(Color.gray);
g.drawRect(015, 010, 240, 210); g.drawRect(270, 010, 240, 210);
g.drawRect(525, 010, 240, 210); g.drawRect(780, 010, 240, 210);
g.drawRect(015, 230, 240, 210); g.drawRect(270, 230, 240, 210);
g.drawRect(525, 230, 240, 210); g.drawRect(780, 230, 240, 210);
g.drawRect(015, 450, 240, 210); g.drawRect(270, 450, 240, 210);
g.drawRect(525, 450, 240, 210); g.drawRect(780, 450, 240, 210);
int i=0;
g.setColor(Color.black);
int meioDeEscala = 105; // meioDeEscala é a metade da escala
while(i<240 && (i+offsetAmostra) < array1.length) {
g.drawLine(015+i, 010+meioDeEscala-( array1[i + offsetAmostra]>>bits), 015+i+1, 010+meioDeEscala-( array1[i+1 + offsetAmostra]>>bits));
g.drawLine(270+i, 010+meioDeEscala-(array2[i + offsetAmostra]>>bits), 270+i+1, 010+meioDeEscala-(array2[i+1 + offsetAmostra]>>bits));
g.drawLine(525+i, 010+meioDeEscala-( array3[i + offsetAmostra]>>bits), 525+i+1, 010+meioDeEscala-( array3[i+1 + offsetAmostra]>>bits));
g.drawLine(780+i, 010+meioDeEscala-( array4[i + offsetAmostra]>>bits), 780+i+1, 010+meioDeEscala-( array4[i+1 + offsetAmostra]>>bits));
g.drawLine(015+i, 230+meioDeEscala-( array5[i + offsetAmostra]>>bits), 015+i+1, 230+meioDeEscala-( array5[i+1 + offsetAmostra]>>bits));
g.drawLine(270+i, 230+meioDeEscala-(array6[i + offsetAmostra]>>bits), 270+i+1, 230+meioDeEscala-(array6[i+1 + offsetAmostra]>>bits));
g.drawLine(525+i, 230+meioDeEscala-( array7[i + offsetAmostra]>>bits), 525+i+1, 230+meioDeEscala-( array7[i+1 + offsetAmostra]>>bits));
g.drawLine(780+i, 230+meioDeEscala-( array8[i + offsetAmostra]>>bits), 780+i+1, 230+meioDeEscala-( array8[i+1 + offsetAmostra]>>bits));
g.drawLine(015+i, 450+meioDeEscala-( array9[i + offsetAmostra]>>bits), 015+i+1, 450+meioDeEscala-( array9[i+1 + offsetAmostra]>>bits));
g.drawLine(270+i, 450+meioDeEscala-(array10[i + offsetAmostra]>>bits), 270+i+1, 450+meioDeEscala-(array10[i+1 + offsetAmostra]>>bits));
g.drawLine(525+i, 450+meioDeEscala-( array11[i + offsetAmostra]>>bits), 525+i+1, 450+meioDeEscala-( array11[i+1 + offsetAmostra]>>bits));
g.drawLine(780+i, 450+meioDeEscala-( array12[i + offsetAmostra]>>bits), 780+i+1, 450+meioDeEscala-( array12[i+1 + offsetAmostra]>>bits));
i++;
}
Minha pergunta é:
Como imprimo tal tela? É possível eu criar um documento tipo "print screen" e mandá-lo para a impressora?
Será que eu precisarei criar figuras temporárias (.bmp, sei lá), e depois colocá-las no documento?
Agradeço a ajuda!!
