mudar a imagem dinamicamente com um selectItem

29/09/2010

0

Bom dia pessoal,

eu estou tentando mudar a imagem exibida a partir de um selectItem, ou seja, de acordo com o selectItem escolhido, a imagem muda.


    <h:form id="form_ajax">
        
        <a4j:region id="teste">
        
        
         <h:selectOneMenu value="#{mediaBean.municipio.codigo}" id="codOrgao" >   
                        <f:selectItems value="#{mediaBean.listaDeMunicipios}" />  
                        <a4j:support  reRender="painel_img_filho" event="onchange"  ajaxSingle="true" 
                action="#{mediaBean.mudarUrl}"/> 
                    </h:selectOneMenu> 
                    
                    
            <a4j:outputPanel id="painel_img_filho">
        
        <h:graphicImage url="#{mediaBean.mediaData.caminhoImagem}"/>
        
        </a4j:outputPanel>
        
    
        </a4j:region>
        
        
        </h:form>




Aqui está meu bean


    public void paint(OutputStream stream, Object object) throws IOException {
            
            try{
             File file = null;  
              
                //Pega a foto associada ao usuário  
                if (mediaData.getCaminhoImagem() != null && !mediaData.getCaminhoImagem().equals("")){ 
                    file = new File(mediaData.getCaminhoImagem());  
                //Caso a foto não exista, é exibida a imagem de "FOTO NÃO ECONTRADA"  
              
                //Responsáveis por "escrever" a foto no a4j:mediaOutput.  
                BufferedImage image = ImageIO.read(file);  
                ImageIO.write(image, "jpg", file);  
                }
                //Isso tambem funciona, mas pelo jeito virará deprecated logo...  
//                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
//                encoder.encode(ImageIO.read(file));  
      
                //Outra maneira que tambem funciona...  
//                byte[] buffer = null;  
//                InputStream is = new FileInputStream(file);  
//                buffer = new byte[is.available()];  
//                is.read(buffer);  
//                is.close();  
//                out.write(buffer);  
            } catch(Exception e) {  
               e.printStackTrace();
            }
            



Alguém poderia me ajudar ?

Euclides Filizola

Euclides Filizola

Responder

Posts

29/09/2010

Euclides Filizola

Problema resolvido.

aqui ficou meu codigo.



    <h:form id="form_ajax">
        
        <a4j:region id="teste">
        
        <a4j:outputPanel id="painel_img_padrao">
        
         <h:selectOneMenu value="#{mediaBean.municipio.codigo}" id="codOrgao" >   
                        <f:selectItems value="#{mediaBean.listaDeMunicipios}" />  
                        <a4j:support  reRender="painel_img_secundario" event="onchange"  ajaxSingle="true" 
                action="#{mediaBean.mudarUrl}"/> 
                    </h:selectOneMenu> 
           
        </a4j:outputPanel>
                    
                    
            <a4j:outputPanel id="painel_img_secundario" ajaxRendered="true">
        
        <h:graphicImage url="#{mediaBean.mediaData.caminhoImagem}"/>
        </a4j:outputPanel>
        
    
        </a4j:region>
        
        
        </h:form>


e aqui está meu método paint.


    public void paint(OutputStream stream, Object object) throws IOException {
            
            try{
             File file = null;  
              
             
                //Pega a foto associada ao usuário  
                if (mediaData.getCaminhoImagem() != null && !mediaData.getCaminhoImagem().equals("")){ 
                    file = new File(mediaData.getCaminhoImagem());  
                //Caso a foto não exista, é exibida a imagem de "FOTO NÃO ECONTRADA"  
              
                //Responsáveis por "escrever" a foto no a4j:mediaOutput.  
                BufferedImage image = ImageIO.read(file);  
                ImageIO.write(image, "jpg", stream);  
                }
                //Isso tambem funciona, mas pelo jeito virará deprecated logo...  
//                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
//                encoder.encode(ImageIO.read(file));  
      
                //Outra maneira que tambem funciona...  
//                byte[] buffer = null;  
//                InputStream is = new FileInputStream(file);  
//                buffer = new byte[is.available()];  
//                is.read(buffer);  
//                is.close();  
//                out.write(buffer);  
            } catch(Exception e) {  
               e.printStackTrace();
            }
            
    }



abraços.
Responder

04/10/2010

Dyego Carmo

Opa , poderia fechar este post ?


ValeuZ !
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar