Abrindo Imagem com JFileChooser em Java

// AbrindoImagem.java
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;


/**
 * @version 1.00 2013-07-06
 * @author João Matheus Santos Assis
 */
public class AbrindoImagem extends JFrame {
    
    
    // Componentes Gráficos necessários.
    private JFileChooser escolherImagem;
    private JLabel labelImagem;
    private JButton buttonAbrir;
    
    
    /**
     * Aqui é aberta a caixa de diálogo de arquivo (JFileChooser)
     * configurada para aceitar imagem no formato .jpg, .jpeg e .gif;
     * Após escolhida a imagem desejada e o botão Abrir for requisitado
     * o label escolherImagem carregará a imagem.
     */
    private void AbrirImagem() {
        
        escolherImagem = new JFileChooser();
        
        FileNameExtensionFilter filtro = 
                new FileNameExtensionFilter("Imagem", "jpg", "jpeg", "gif");
        escolherImagem.setFileFilter(filtro);

                
        int resultado = escolherImagem.showOpenDialog(AbrindoImagem.this);
                
        if (resultado == JFileChooser.APPROVE_OPTION) {
            
            // armazena o diretório da imagem.
            String caminho = escolherImagem.getSelectedFile().getPath();
            labelImagem.setIcon(new ImageIcon(caminho));
        }
    }
    
    
    /**
     * O construtor chama o método initComponents.
     */
    public AbrindoImagem() {
        
        initComponents();
    }
    
    
    /**
     * Aqui é definido as propriedades do Jframe, bem como
     * adicionado os componentes gráficos ao JFrame.
     */
    private void initComponents() {
        
        // Propriedades da Janela.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationByPlatform(true);
        setTitle("Abrindo Imagem em Java...");
        setSize(500, 500);
        
        
        // Propriedade do labelImagem.
        labelImagem = new JLabel();
        add(new JScrollPane(labelImagem), BorderLayout.CENTER);
        
        
        // Propriedade do buttonAbrir.
        buttonAbrir = new JButton();
        buttonAbrir.setText("Abrir Imagem...");
        buttonAbrir.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                // Chama o método AbrirImagem.
                AbrirImagem();
            }
        });
        add(buttonAbrir, BorderLayout.SOUTH);
           
    }
    
    
    /**
     * Método Principal, aqui é carregada a aplicação e definida a interface
     * da janela.
     */
    public static void main(String[] args) {
        
        try {
            for (UIManager.LookAndFeelInfo info : 
                    UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(AbrindoImagem.class.getName()).log(Level.SEVERE,
                    null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(AbrindoImagem.class.getName()).log(Level.SEVERE,
                    null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(AbrindoImagem.class.getName()).log(Level.SEVERE,
                    null, ex);
        } catch (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(AbrindoImagem.class.getName()).log(Level.SEVERE,
                    null, ex);
        }
        
        EventQueue.invokeLater(new Runnable() {
            
            @Override
            public void run() {
                new AbrindoImagem().setVisible(true);
            }
            
        });
    }
}



Palavras-Chaves: Abrindo Imagem, Extensões, JPG, JPEG, GIF, Componentes Gráficos, Diretório, JFileChooser, JLabel, JButton, actionPerformed, Layout, Propriedades, Bibliotecas, Documentação, Caixa de Diálogo, Interface da Janela, Métodos, Construtor, Java.


Nota.: Recomendasse a não abrir imagens de grandes dimensões para garantir uma boa visualização.


Artigos relacionados em Java:



Feito no NetBeans-7.1 | Executável



Feito no NetBeans-7.1 | Executável