<\/p>\n
Ol\u00e1 amigos, hoje \u00e9 dia de um pouco de JavaSwing. Vamos falar do Upload de imagem em Java desktop.
\nApesar de ser uma tecnologia poderosa o Java Swing n\u00e3o \u00e9 muito utilizado no mundo corporativo Java. As alternativas para Web s\u00e3o mais atraentes e muito mais divulgadas. Claro que existem raz\u00f5es para isso: a maioria dos sistemas atualmente rodam sobre servidores robustos, s\u00e3o distribu\u00eddos, balanceados que \u00e9 mais interessante do que os sistemas Standalone (Desktop).
\n Mesmo assim sempre haver\u00e1 a necessidade, um requisito para se utilizar JSE – Java Standard Edition ou um professor que nos passa um trabalho! \ud83d\ude42
\n Para essas situa\u00e7\u00f5es mostraremos como manipular Imagem em JavaSwing.<\/p>\n
M\u00e3os \u00e0 obra!<\/p>\n
\r\npackage br.com.feltex.jse.swing.nivel5;\r\n\r\nimport java.awt.BorderLayout;\r\nimport java.awt.Container;\r\nimport java.awt.Dimension;\r\nimport java.awt.event.ActionEvent;\r\nimport java.awt.event.ActionListener;\r\nimport java.awt.image.BufferedImage;\r\nimport java.io.File;\r\nimport java.io.IOException;\r\n\r\nimport javax.imageio.ImageIO;\r\nimport javax.swing.ImageIcon;\r\nimport javax.swing.JButton;\r\nimport javax.swing.JFileChooser;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JLabel;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JRootPane;\r\n\r\npublic class CarregaImagem extends JFrame implements ActionListener {\r\n\r\n\tprivate static final long serialVersionUID = 2893622202255914832L;\r\n\tJFileChooser chooser;\r\n\tBufferedImage imagem;\r\n\tJButton btnCarregaImagem;\r\n\tFile arquivo;\r\n\tJLabel label;\r\n\r\n\t\r\n\t\/**\r\n\t * Construtor padr\u00e3o do Sistema\r\n\t *\/\r\n\tpublic CarregaImagem() {\r\n\r\n\t\tsuper(\"Capturar Imagem\");\r\n\r\n\t\tsetSize(580, 580);\/\/ Dimens\u00f5es da Janela\r\n\r\n\t\tJPanel panel = new JPanel();\r\n\t\tpanel.setLayout(new BorderLayout());\r\n\t\tgetContentPane().add(panel);\r\n\t\t\t\t\r\n\t\tchooser = new JFileChooser();\r\n\t\tlabel = new JLabel();\r\n\r\n\t\tJPanel secpanel = new JPanel();\r\n\t\t\r\n\t\t\/\/ Define que a tela ser\u00e1 retirada da mem\u00f3ria quando clicar no bot\u00e3o fechar \"X\" da tela\r\n\t\tsetDefaultCloseOperation(DISPOSE_ON_CLOSE);\r\n\t\t\r\n\t\t\r\n\t\tsetVisible(true);\r\n\r\n\t\tJRootPane compPane = panel.getRootPane();\r\n\t\tContainer contePane = compPane.getContentPane();\r\n\t\tcontePane.add(secpanel);\r\n\r\n\t\tsecpanel.add(label, BorderLayout.CENTER);\r\n\r\n\t\tbtnCarregaImagem = new JButton(\"Selecione uma imagem\");\r\n\t\tbtnCarregaImagem.addActionListener(this);\r\n\t\tpanel.add(btnCarregaImagem, BorderLayout.SOUTH);\r\n\t}\r\n\r\n\t\r\n\t\r\n\tprotected static ImageIcon createImageIcon(String path) {\r\n\t\tjava.net.URL imgURL = CarregaImagem.class.getResource(path);\r\n\r\n\t\tif (imgURL != null) {\r\n\t\t\treturn new ImageIcon(imgURL);\r\n\t\t} else {\r\n\t\t\tSystem.err.println(\"N\u00e3o foi poss\u00edvel carregar o arquivo: \" + path);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t\/**\r\n\t * M\u00e9todo acionado quando o usu\u00e1rio clique no bot\u00e3o\r\n\t * @ActionEvent - objeto com o comportamento da a\u00e7\u00e3o\r\n\t *\/\r\n\tpublic void actionPerformed(ActionEvent e) {\r\n\r\n\t\tif (e.getSource() == btnCarregaImagem) {\r\n\r\n\t\t\tchooser.showOpenDialog(null);\r\n\t\t\tarquivo = chooser.getSelectedFile();\r\n\r\n\t\t\ttry {\r\n\t\t\t\timagem = ImageIO.read(arquivo);\r\n\t\t\t\tImageIcon icon = new ImageIcon(imagem);\r\n\t\t\t\tlabel.setIcon(icon);\r\n\r\n\t\t\t\tDimension imageSize = new Dimension(icon.getIconWidth(), icon.getIconHeight());\r\n\t\t\t\tlabel.setPreferredSize(imageSize);\r\n\r\n\t\t\t\tlabel.revalidate();\r\n\t\t\t\tlabel.repaint();\r\n\r\n\t\t\t} catch (IOException e1) {\r\n\t\t\t\te1.printStackTrace();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tnew CarregaImagem();\r\n\t}\r\n\r\n}\r\n<\/pre>\nConclus\u00e3o<\/H2><\/p>\n
Ent\u00e3o amigos. Isso \u00e9 apenas uma das formas de manipular imagens com java Swing. Ainda \u00e9 poss\u00edvel pegar essa imagem e salvar em banco de dados, enviar por e-mail. Leia os links abaixa e aprenda mais sobre manipula\u00e7\u00e3o de imagem em java.<\/p>\n
Grande abra\u00e7o e vida que segue!<\/p>\n
Links relacionados<\/H2><\/p>\n
Swing Tutorial<\/a><\/p>\nGrava\u00e7\u00e3o em Banco de Dados<\/a><\/p>\n