Boa tarde @Vicente_Bertipalha_B, tudo bem?!
Vamos por parte, vamos criar uma boa lógica para o bom funcionamento do seu software, veja!
1° - Acho que podemos facilitar nossa vida salvando apenas o nome da imagem no banco de dados e sua extensão;
2° - Se fizermos isso, não vamos nos preocupar com o caminho das imagens, ela ficarão em uma única pasta, e poderemos recuperar tudo dinamicamente;
3° - Vamos adotar a seguinte estrutura para seu projeto:
Folder
____|_____
| |
| |__ imagens (Aqui vão todas as suas imagens)
|
|__ src (E aqui vão todos os principais arquivos do seu projeto)
#DEPOIS DE CONSTRUIR SEU .jar TEREMOS A SEGUINTE ESTRUTURA:
Folder
____|_____
| |
| |__ imagens
|_ Seu programa.jar
Observe que que adotando essa estrutura fica muito mais fácil, pois onde estiver seu arquivo.jar
, as imagens estão logo ao lado dentro da pasta imagens
.
Agora vamos definir uma boa lógica para o seu banco de dados.
Basicamente, teu banco de dados tem (ou pelo menos deve ter) a estrutura abaixo.
Repare que a tabela imagens tem uma coluna produto_id
, esse atributo recebe o id
de um produto, ou seja, eu estou amarrando uma imagem a um produto especifico. E isso me ajudara muito, pois me possibilita recuperar uma imagem pelo id
do produto.
Vamos salvar apenas o nome do imagem com sua extensão. Para você inserir no bando de dados o nome da imagem você vai precisar do id
do produto.
Ex: imagine que o produtor calculara
tenha o id
= 8.
INSERT INTO tabela_imagens (produto_id, imagem_name) VALUES ( 8, "calculadora.jpg");
Por agora, vamos nos preocupar em cadastrar os produtos e os nomes da imagens no banco de dados, relaxa que eu já tenho uma função já pronta que muda a imagem do label dinamicamente (fiz hoje), assim que terminares essa parte primeira parte eu mando e te explico como usa-la, é bem simples.
Não esquece de organizar teu projeto da maneira que especificamos logo acima, na verdade acho que tu já estás até fazendo isso. O código abaixo usa recupera o caminho da pasta imagens
dinamicamente, usa ele.
String caminho = System.getProperty("user.dir")+"\\imagens\\";
Vou te mandar um exemplo compilado, em que recupero tudo dinamicamente, faz uns testes com ele, e não se preocupa em setar o label ainda, vamos nos atentar na estrutura e lógica do teu software, setar as imagens no label é detalhe, segue o exemplo: exemplo.zip (286,3 KB)
Qualquer coisa estamos aí!
Abraços!