Pessoal, estou com uma dúvida e gostaria de saber se alguém já colocou uma foto em uma tela utilizando swing, qual o tipo de campo foi utilizando?
Como colocar uma foto na tela utilizando swing?
15 Respostas
Sinval,
Você pode colocar em um Label, por exemplo.
http://www.javaalmanac.com/egs/javax.swing/label_CreateIcon.html
Abraço,
Márcio
Tudo bem Marcio, sobre a sua sugestão, gostaria de lhe agradeçer, mas me diga, eu preciso transformar a “foto” em um Icon ? Não posso ter um campo imagem na tela ?
Sinval,
O exemplo era de um icon, mas tente colocar um jpg ( mesmo grande ) , tenho quase certeza que funcinará.
Márcio
Beleza Marcio, realmente consegui colocar, mas ficou todo distorcido, como posso faze-lo ficar nitido a imagem colocada dentro deste JLabel? :?:
Pessoal, alguém pode me ajudar ??
Sinval,
Você quer colocar uma imagem ( foto) no fundo o frame ou em um componente específico ?
Márcio
Em um JLabel de tamanho aproximado das fotos 3X4.
úé, deveria funcionar normalmente! Eu já usei o label para colocar figuras, e sempre funcou… muito esquisito… :shock:
Bom, dê uma olhada nestes links aqui!
http://java.sun.com/docs/books/tutorial/index.html
http://java.sun.com/docs/books/tutorial/uiswing/components/splitpane.html
No segundo link que te passei, está ensinando o componente splitpane, no entanto, ele tem algum exemplo usando figuras. Dá uma cheretada no código fonte deles e veja como eles estão fazendo para trabalhar com as figuras! 
Abraços!
Thiago Senna
public Image foto;
public boolean getFoto() {
if (!validaEntrada()) {
return false;
}
try {
File file = new File(this.path);
if (file.exists()) {
try {
BufferedImage image = ImageIO.read(file);
if (image == null) {
System.err.println("Invalido formato lido");
} else {
this.foto = image;
}
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (IllegalArgumentException iae) {
iae.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
Icon iFoto;
JLabel lFoto = new JLabel(iFoto);
lFoto.setBounds(new Rectangle(16, 60, 75, 150));
if (!(funcionarioDAO
.selecionaUnicoFuncionarioMatricula(funcionario))) {
JOptionPane.showMessageDialog(null,
"Funcionario com esta matricula não foi encontrado",
"Erro", 1);
return;
} else {
nomeFld.setText(funcionario.getNomeFuncionario());
cargoFld.setText(funcionario.cargoAtualFuncionario());
int matricula = Integer.parseInt(idFuncionarioFld.getText());
funcionario.setMatriculaFuncionario(matricula);
PegaFoto pegaFoto = new PegaFoto("H:\", idFuncionarioFld
.getText(), "jpg");
iFoto = new ImageIcon(pegaFoto.foto);
lFoto.setIcon(iFoto);
}
Alguém achou alguma coisa errada em meu código ??
O que faz o método pegaFoto()?
tnte colocar
iFoto.repaint();
ou mesmo
seuForm.repaint();
Márcio
Na realidade o pegaFoto não é um método e sim a classe que tem o objetivo de pegar a foto e me devolver, assim o pega foto é apenas um instancia, exemplo: PegaFoto pegaFoto = new PegaFoto();
Não sei se deu para entender ?
Vou fazer os testes que vc postaram e por volta das 9:30 eu retorno se deu certo.
Até.
Pessoal, infelizmente não estou conseguindo fazer a foto ficar na dimensão que preciso, quando informo o JLabel grande ela fica nitida, mas como preciso dela pequena ela fica distorcida.
Alguém tem mais alguma ideia ??
Marcio, fiz o repaint mas não funcionou.
Aguardo :?
Alguém tem alguma dica para me dar sobre o problema ???
Desculpe-me a pergunta cretina, mas não dá oara salvear a foto nas dimensões corretas ?
Márcio