Pessoal estou com problema em exibir uma imagem em que o usuario vai escolher pelo JFileChooser, a rotina que eu criei foi que eu criei um ImageIcon para receber o diretorio escolhido no JFileChooser e depois joguei em uma JLabel e por final de fundo em um JPanel, só que não é visualizada a imagem.
Códigos:
btnNavegar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fileChooser.showOpenDialog(null);
String dir = fileChooser.getCurrentDirectory().getPath();
imgVisualizacao =new ImageIcon(dir);
lblVisualizacaoImg =new JLabel(imgVisualizacao);
panelVisualizacaoImg.add(lblVisualizacaoImg);
}
});
Quem poder me ajudar desde já agradeço
Acontece o seguinte: você está fazendo referência à pasta onde o usuário selecionou o arquivo, e não ao arquivo propriamente dito. Substitua:
String dir = fileChooser.getCurrentDirectory().getPath();
Por:
String dir = fileChooser.getSelectedFile().getPath();
Antes de você usar esse comandos aí em cima, você deve declarar e instanciar o lblVisualizacao. Depois, inclua-o no seu painél. Você não perceberá, mas ele estará lá.
Por fim, no lugar disso:
lblVisualizacaoImg =new JLabel(imgVisualizacao);
panelVisualizacaoImg.add(lblVisualizacaoImg);
Use isso:
lblVisualizacao.setIcon(imgVisualizacao);
Aí deve dar certo. Tem que fazer assim para apenas trocar o ícone, porque se o usuário resolver trocar a imagem 30 vezes, iriam aparecer 30 imagens na tela (ou seja, a cada vez que o usuário seleciona nova imagem, seria adicionada uma nova, e não trocada).
Rapaiz não deu certo, continua sem aparecer a imagem, fid do geito que disse:
btnNavegar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fileChooser.showOpenDialog(null);
String dir = fileChooser.getSelectedFile().getPath();
imgVisualizacao =new ImageIcon(dir);
lblVisualizacaoImg.setIcon(imgVisualizacao);
panelVisualizacaoImg.add(lblVisualizacaoImg);
}
});
Poste o código da classe completo, pois o erro deve estar em outro lugar.
Cara é o seguinte em um JLabel vc normalmente exibe uma string, para exibir uma imagem faça assim:
ImageIcon imagem = new ImageIcon(caminhoArquivo); //instanciando a imagem
JLabel lblImagem = new JLabel(imagem); // passando a instancia como parâmetro
lblImagem.setBounds(30, 30, 200, 260); // atribuindo a posição e tamanho do Label
OBS: este caminhoArquivo é o caminho da imagem selecionado no seu JFileChooser, e não se esqueça de adicionar o “lblImagem” no seu frame
Boa Sorte t+
espero ter ajudado tbm sou iniciante !! =D