finotti 10 de out. de 2008
rafael, no seu banco de dados, o campo referente ao arquivo é Blob?
tente assim:
InputStream is = null;
if (rs.next()) {
Blob blob = rs.getBlob("nomeArquivo");
is = blob.getBinaryStream();
}
rafaelchagas.sp 10 de out. de 2008
Eu fiz assim agora mas continua com o mesmo problema =/
ele carrega a imagem, mas ela não aparece dai quando minimizo a tela e maximimzo denovo a imagem ta carregada…
mto estranho mesmo
Marky.Vasconcelos 10 de out. de 2008
Isso parece erro de programação então.
Coloca o código da tela que mostra a imagem.
rafaelchagas.sp 10 de out. de 2008
ta ai todo o código que faz a imagem aparecer.
if ( rs .next ())
{
Blob blob = rs .getBlob ( "logotipo" ) ;
InputStream input = blob .getBinaryStream () ;
// InputStream input = rs .getBinaryStream ( "logotipo" ) ;
if ( input != null )
{
ByteArrayOutputStream output = new ByteArrayOutputStream () ;
byte [] rb = new byte [1024 ];
int ch = 0 ;
while (( ch = input .read ( rb )) != - 1 )
{
output .write ( rb , 0 , ch ) ;
}
byte [] b = output .toByteArray () ;
input .close () ;
output .close () ;
Image img = Toolkit .getDefaultToolkit () .createImage ( b ) ;
if ( img != null )
{
txticon .setImage ( img ) ;
}
finotti 10 de out. de 2008
na verdade, esse código que postei acima é referente apenas à recuperação do arquivo no banco de dados.
provavelmente, sua app está com algum problema na hora de carregar a imagem e renderizar a view.
Marky.Vasconcelos 10 de out. de 2008
Depois de coloca-lo no txticon voce tem que repintar o componente
if ( img != null )
{
txticon .setImage ( img ) ;
txticon .repaint () ;
}
rafaelchagas.sp 10 de out. de 2008
Marky.Vasconcelos 10 de out. de 2008
Então depois de colocar a imagem da o repaint na Janela principal
rafaelchagas.sp 10 de out. de 2008
Fiz assim e funcionou \o/
if ( rs .next ())
{
Blob blob = rs .getBlob ( "logotipo" ) ;
InputStream input = blob .getBinaryStream () ;
// InputStream input = rs .getBinaryStream ( "logotipo" ) ;
if ( input != null )
{
ByteArrayOutputStream output = new ByteArrayOutputStream () ;
byte [] rb = new byte [input .available () ];
input .read ( rb ) ;
ImageIcon i = new ImageIcon ( rb ) ;
Image img = i .getImage () ;
if ( img != null )
{
txticon .setImage ( img ) ;
txticon .repaint () ;
}