Olá galera! Sou iniciante em java e estou desenvolvendo um sistema de cadastro (nome, tel, endereço, …) e um dos items do cadastro é a inserção de uma foto. Esta foto tem que ser adicionada do arquivo e visualizada num JPanel independente. Estou conseguindo carregar a imagem numa boa, o problema é visualizá-la depois. segue o código:
import java.awt.*;
import javax.swing.*;
public class Cliente extends JFrame {
private static final long serialVersionUID = 1L;
private String opcImage[] = {"", "Carregar foto", "Ver foto"};
String foto;
JPanel painel1;
private JComboBox fotoC;
public Cliente(){
Container quadro = getContentPane();
SpringLayout layout = new SpringLayout();
painel1 = new JPanel(layout);
fotoC = new JComboBox(opcImage);
fotoC.setEnabled(false);
fotoC.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
foto = (String)(fotoC.getSelectedItem());
if (foto == "Carregar foto"){
new CarregarImagem();
}
if(foto == "Ver foto"){
CarregarImagem IMG = new CarregarImagem();
IMG.painel(); // Tá dando erro
}
}
});
painel1.add(fotoC);
layout.putConstraint(SpringLayout.WEST, fotoC, 532, SpringLayout.WEST, painel1);
layout.putConstraint(SpringLayout.NORTH, fotoC, 170, SpringLayout.NORTH, painel1);
setSize(700, 600);
quadro.add(painel1);
setVisible(true);
setResizable(false);
}
public static void main(String[] args) {
new Cliente();
}
}
E esta é a classe que estou chamando para carregar a imagem:
import java.awt.*;
import javax.swing.*;
public class CarregarImagem extends JFrame{
private static final long serialVersionUID = 1L;
public JLabel imagem;
public JFileChooser chooser = new JFileChooser();
public JPanel painel;
int opcao;
public CarregarImagem(){
super("Imagem");
Container c = getContentPane();
FlowLayout lay = new FlowLayout();
painel = new JPanel(lay);
opcao = chooser.showOpenDialog(getParent());
if(opcao == JFileChooser.APPROVE_OPTION) {
String ht = chooser.getSelectedFile().getName();
Icon foto = new ImageIcon(ht);
imagem = new JLabel(foto);
}
else{
System.exit(0);
}
painel.add(imagem);
c.add(painel);
setResizable(false);
setSize(700,600);
setVisible(true);
}
}
Quero que quando o item “Ver foto” for clicado, apareça a imagem carregada no painel da classe CarregarImagem.
Desde já agradeço a todos!