colegas,
tenho uma app desktop conectada a um scaner. Quando um documento é escaneado, o usuário deve visualiza-la em um JPanel e depois salvar. Assim que o scanner termina a digitalização do documento e o converte para imagem, consigo exibir a imagem na área do JPanel imediatamente chamando o método repaint() do mesmo. Mas ao exibir a imagem, o panel tambem exibe algumas partes da janela, como se eu tivesse dado um print na tela, fica então uma imagem mesclada na area do panel.
Se redimensiono a janela, então a imagem arruma, e o panel exibe como teria que exibir inicialmente, sem pegar uma parte da tela, mostrando só o arquivo digitalizado mesmo.
Alguém sabe como posso resolver esse problema, ou seja, mostrar só a imagem do arquivo, sem “rabiscos” de outras partes da tela?
segue meu JPanel estendido:
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class DesenhaImagem extends JPanel{
private Image img;
@Override
public void paint(Graphics g) {
graphics = g;
g.drawImage(img, 0, 0, null);
}
//chamdo pelo controlador do scanner
public void setImg(Image img) {
Image awtImage = img.getScaledInstance(310, 430, 0);
this.img = awtImage;
super.repaint(); //atualiza e desenha a imagem na area do panel (mas desenha com interferencia, a imagem só fica correta quando o usuario redimensiona a janela)
}
public Image getImg() {
return img;
}
}
valeu