Deixar fixo jlabel

2 respostas
T

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); 
       }

2 Respostas

T

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);
        }
        

}
T

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

Criado 8 de novembro de 2012
Ultima resposta 23 de nov. de 2012
Respostas 2
Participantes 1