Amigos olha ai eu de novo, espero ajuda de voces, estou usando o código onde carrego a imagem da pessoa, como o cliente vai em enviar varios tamanhos de fotos, com esse codigo a jlabel cresce de tamanho e desconfigura a pagina,como faço para resolver isso? Nesse codigo redimensiono o tamanho da foto (112, 94), mas o quero é que quando eu clique, para carregar a foto, fique fixo e tamanha da jlabel, no caso lb_foto não tome conta toda tela.Outra coisa, poderia usar em vez de jlabel outra coisa pra que eu consigo esse procedimento. Cabe dizer tambem que quando eu chamo o cliente ja vem com o tamanho correto.
try {
JFileChooser busca_foto = new JFileChooser();
busca_foto.setCurrentDirectory(new File("C:/"));// carrega foto
busca_foto.setDialogTitle("Carregar imagem do cliente");
busca_foto.showOpenDialog(this);
String foto = ""+busca_foto.getSelectedFile().getName();
tf_foto.setText(foto); //recebe o endereco da foto
lb_foto.setIcon(new ImageIcon("C:/"+tf_foto.getText())); // pego de textfied o nome da foto
BufferedImage imagem;
imagem = ImageIO.read(new File("C:/"+tf_foto.getText())); // carrego a foto para mudar o nome dela
nomefoto();
BufferedImage aux = new BufferedImage(112, 94, imagem.getType());// redimensiona a imagem
Graphics2D g = aux.createGraphics();//pega a classe graphics do aux para edicao
AffineTransform at = AffineTransform.getScaleInstance((double) 112 / imagem.getWidth(), (double) 94 / imagem.getHeight());//cria a transformacao
g.drawRenderedImage(imagem, at);//pinta e transforma a imagem real no auxiliar
ImageIO.write(aux, "jpg", new File("C:/"+tf_matricula.getText() +".jpg"));
}
catch(Exception erro){
JOptionPane.showMessageDialog(null,"erro na foto "+erro);
}
Amigos e outra coisa que percebi, como vcs percebem eu altero nome do arquivo para matricula do cliente. Mas quando salvo no caso quando for editado, ele não atualiza e fica apontando a foto antiga, mas se eu nao mudar o nome da foto ele atualiza. Então estou no dilema, eu muda o nome da foto, so que vou ter problemas no futuro no banco ja que posso ter nome grande e assim demora consulta, ou o cliente so vai ver a foto atualizada se fechar e abrir o sistema de novo. Fico no aguardo, abaixo segue parte do codigo.
private void lb_fotoMouseClicked(java.awt.event.MouseEvent evt) {
try {
JFileChooser busca_foto = new JFileChooser();
busca_foto.setCurrentDirectory(new File("C:/"));
busca_foto.setDialogTitle("Carregar imagem do cliente");
busca_foto.showOpenDialog(this);
String foto = ""+busca_foto.getSelectedFile().getName();
tf_foto.setText(foto);
lb_foto.setIcon(new ImageIcon("C:/"+tf_foto.getText()));
BufferedImage imagem;
imagem = ImageIO.read(new File("C:/"+tf_foto.getText()));
nomefoto();
BufferedImage aux = new BufferedImage(112, 94, imagem.getType());
Graphics2D g = aux.createGraphics();//pega a classe graphics do aux para edicao
AffineTransform at = AffineTransform.getScaleInstance((double) 112 / imagem.getWidth(), (double) 94 / imagem.getHeight());//cria a transformacao
g.drawRenderedImage(imagem, at);//pinta e transforma a imagem real no auxiliar
ImageIO.write(aux, "jpg", new File("C:/"+tf_matricula.getText() +".jpg"));
}
catch(Exception erro){
JOptionPane.showMessageDialog(null,"erro na foto "+erro);
}
}
public void nomefoto(){
String t;
try {
String sql = "select matricula from aluno Where codigoaluno = " +tf_codigo.getText();
con_alunos.executeSQL(sql);
con_alunos.resultset.first();
t = con_alunos.resultset.getString("matricula")+".jpg" ;
tf_foto.setText(t);
String sql1 = "UPDATE aluno SET foto ='"+t+"',"+
"'where codigoaluno = " + tf_codigo.getText();
} catch (SQLException ex) {
Logger.getLogger(Institucional.class.getName()).log(Level.SEVERE, null, ex);
}
}
Pessoal ainda não resolvi essa questão, coloquei um jpanel e em cima dele jlabel, para receber a foto e quando pegar uma foto grande, o tamanho do jlabel fique e fixo e nao aumente devido a foto. vlw