Olá pessoal, sou novato em em java, minha duvida pode ser basica, mas estou quebrando a cabeça a dois dias,
bem vou explicar o maximo possivel minha duvida, tenho um frame que deve ficar trocando uma imagem de dez em dez minutos,
ja implementei um timer para isso, o problema é que essas imagens estão em um banco de dados firebird, eu consegui fazer com que
funcione baixando as imagens do banco cada vez que a aplicação inicie, colocando-as em uma pasta e apartir dela carregando as imagens,
mas tem um porém estas imagens podem ser mudadas por um aplicativo retaguarda e assim só posso carregar as novas imagens ao reiniciar
a aplicação, e não é assim que o aplicativo deve funcionar, bem estou tentado implementar o seguinte código para resolver o problema, mas não
aparece nenhuma imagem no frame, nem se quer um erro, se puderem me ajudar agradeço:
public ImageIcon[] listaImg(){ //Nesta funçao carrego as imagens do banco, para uma lista de imagens
int qtd = 0;
ImageIcon[] imageIcon = new ImageIcon[verificaNumReg()];
SQL = "SELECT * FROM PROTECAO_TELA";
try
{
pstm = Conexao.Conecta().prepareStatement(SQL);
rs = pstm.executeQuery();
while(rs.next()){
imageIcon[qtd] = new ImageIcon(rs.getBlob("IMAGEM").getBytes(1, (int)rs.getBlob("IMAGEM").length()));
qtd++;
}
}
catch (SQLException ex)
{
func.Informacao(this,ex.getMessage());
}
return imageIcon;
}
public int verificaNumReg(){ // esta função apenas retorna o numero de registros da tabela, para a criação da lista de imagens com tamanho correto
int qtd = 0;
SQL = "SELECT NOME FROM PROTECAO_TELA";
try
{
pstm = Conexao.Conecta().prepareStatement(SQL);
rs = pstm.executeQuery();
while(rs.next()){
qtd++;
}
}
catch (SQLException ex)
{
func.Informacao(this,ex.getMessage());
}
return qtd;
}
void colocaImagem(ImageIcon img) {//Aqui coloco a imagem em um JLabel
try
{
jFundo.setIcon(img);
jFundo.repaint();
}
catch(Exception e)
{
func.Informacao(this, "Problemas ao carregar imagem de fundo...");
}
}
public void novatela(){
ImageIcon[] listaIMGs= listaImg();
if(tela>=listaIMGs.length){
tela = 0;
}
colocaImagem(listaIMGs[tela]);
tela++;
if(!t.isRunning()){
t.start();
}
}