Upload de imagem Java desktop – JavaSwing
Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
Upload de imagem Java desktop – JavaSwing
Olá amigos, hoje é dia de um pouco de JavaSwing. Vamos falar do Upload de imagem em Java desktop.
Apesar de ser uma tecnologia poderosa o Java Swing não é muito utilizado no mundo corporativo Java. As alternativas para Web são mais atraentes e muito mais divulgadas. Claro que existem razões para isso: a maioria dos sistemas atualmente rodam sobre servidores robustos, são distribuídos, balanceados que é mais interessante do que os sistemas Standalone (Desktop).
Mesmo assim sempre haverá a necessidade, um requisito para se utilizar JSE – Java Standard Edition ou um professor que nos passa um trabalho! 🙂
Para essas situações mostraremos como manipular Imagem em JavaSwing.
Mãos à obra!
1. Código de exemplo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | package br.com.feltex.jse.swing.nivel5; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRootPane; public class CarregaImagem extends JFrame implements ActionListener { private static final long serialVersionUID = 2893622202255914832L; JFileChooser chooser; BufferedImage imagem; JButton btnCarregaImagem; File arquivo; JLabel label; /** * Construtor padrão do Sistema */ public CarregaImagem() { super("Capturar Imagem"); setSize(580, 580);// Dimensões da Janela JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); getContentPane().add(panel); chooser = new JFileChooser(); label = new JLabel(); JPanel secpanel = new JPanel(); // Define que a tela será retirada da memória quando clicar no botão fechar "X" da tela setDefaultCloseOperation(DISPOSE_ON_CLOSE); setVisible(true); JRootPane compPane = panel.getRootPane(); Container contePane = compPane.getContentPane(); contePane.add(secpanel); secpanel.add(label, BorderLayout.CENTER); btnCarregaImagem = new JButton("Selecione uma imagem"); btnCarregaImagem.addActionListener(this); panel.add(btnCarregaImagem, BorderLayout.SOUTH); } protected static ImageIcon createImageIcon(String path) { java.net.URL imgURL = CarregaImagem.class.getResource(path); if (imgURL != null) { return new ImageIcon(imgURL); } else { System.err.println("Não foi possível carregar o arquivo: " + path); return null; } } /** * Método acionado quando o usuário clique no botão * @ActionEvent - objeto com o comportamento da ação */ public void actionPerformed(ActionEvent e) { if (e.getSource() == btnCarregaImagem) { chooser.showOpenDialog(null); arquivo = chooser.getSelectedFile(); try { imagem = ImageIO.read(arquivo); ImageIcon icon = new ImageIcon(imagem); label.setIcon(icon); Dimension imageSize = new Dimension(icon.getIconWidth(), icon.getIconHeight()); label.setPreferredSize(imageSize); label.revalidate(); label.repaint(); } catch (IOException e1) { e1.printStackTrace(); } } } public static void main(String[] args) { new CarregaImagem(); } } |
Conclusão
Então amigos. Isso é apenas uma das formas de manipular imagens com java Swing. Ainda é possível pegar essa imagem e salvar em banco de dados, enviar por e-mail. Leia os links abaixa e aprenda mais sobre manipulação de imagem em java.
Grande abraço e vida que segue!
Deixe um comentário
Você precisa fazer o login para publicar um comentário.