Baixe o app para aproveitar ainda mais
Prévia do material em texto
COMO COLOCAR IMAGEM EM UM FORMULÁRIO CRUD? ........................................................ 2 LÓGICA: .................................................................................................................................... 2 CÓDIGO DO BOTÃO PROCURAR ARQUIVO ............................................................................... 3 FUNÇÕES NECESSÁRIAS PARA FUNCIONAR .............................................................................. 4 CÓDIGO DO BOTÃO SALVAR ..................................................................................................... 6 CÓDIGO DA GRADE JTABLE ....................................................................................................... 7 COMO COLOCAR IMAGEM EM UM FORMULÁRIO CRUD? LÓGICA: Ao clicar no botão procurar, abrirá uma janela para procurar a foto. Após localizar a foto e escolher, ela será mostrada na área do painel com moldura. O atributo icon do JLabel (nome: jLabel2) mostrará a imagem. CÓDIGO DO BOTÃO PROCURAR ARQUIVO JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Localizar imagem"); int a = fileChooser.showOpenDialog(null); if (a == 0) { try { String arquivo = fileChooser.getSelectedFile().getAbsolutePath(); File f = new File(arquivo); BufferedImage src = ImageIO.read(f); BufferedImage dest = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g = dest.createGraphics(); AffineTransform at = AffineTransform.getScaleInstance((double) src.getWidth() / src.getWidth(), (double) src.getHeight() / src.getHeight()); g.drawRenderedImage(src, at); //dest agora tem 460x367 pixels e com a imagem redimensionada. ImageIcon icon = new javax.swing.ImageIcon(arquivo); icon = new javax.swing.ImageIcon(dest); jLabel2.setIcon(icon); //System.out.println("Comprimento da imagem: " + icon.getIconWidth() + "\nAltura da imagem: " + icon.getIconHeight()); } catch (IOException ex) { Logger.getLogger(JFCandidatos.class.getName()).log(Level.SEVERE, null, ex); } } else { } Após colar, se aparecer uma caixa de diálogo solicitando imports, pode importar. FUNÇÕES NECESSÁRIAS PARA FUNCIONAR static Image iconToImage(Icon icon) { if (icon instanceof ImageIcon) { return ((ImageIcon) icon).getImage(); } else { int w = icon.getIconWidth(); int h = icon.getIconHeight(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gd = ge.getDefaultScreenDevice(); GraphicsConfiguration gc = gd.getDefaultConfiguration(); BufferedImage image = gc.createCompatibleImage(w, h); Graphics2D g = image.createGraphics(); icon.paintIcon(null, g, 0, 0); g.dispose(); return image; } } public byte[] imageToByte(Image image) { BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics bg = bi.getGraphics(); bg.drawImage(image, 0, 0, null); bg.dispose(); ByteArrayOutputStream buff = new ByteArrayOutputStream(); try { ImageIO.write(bi, "JPG", buff); } catch (IOException e) { e.printStackTrace(); } return buff.toByteArray(); } Colar essas funções abaixo do “Generated Code” CÓDIGO DO BOTÃO SALVAR Image i; i = iconToImage(jLabel2.getIcon()); candidatos1.setFoto(imageToByte(i)); Acrescentar essas 3 linhas no botão salvar, veja como ficará depois: try { Image i; i = iconToImage(jLabel2.getIcon()); candidatos1.setFoto(imageToByte(i)); entityManager.getTransaction().commit(); entityManager.getTransaction().begin(); } catch (RollbackException rex) { rex.printStackTrace(); entityManager.getTransaction().begin(); List<urnaeleitoral.Candidatos> merged = new ArrayList<urnaeleitoral.Candidatos>(list.size()); for (urnaeleitoral.Candidatos c : list) { merged.add(entityManager.merge(c)); } list.clear(); list.addAll(merged); } Suas alterações estão em destaque vermelho. No local de candidados1 você alterará para a sua entidade que controla o formulário. E no local de setFoto você apagar o trecho “Foto” e pressiona Ctrl+espaço para localizar o método correspondente ao seu. Abaixo a imagem de como ficará o botão salvar após adicionar os códigos. CÓDIGO DA GRADE JTABLE O código será adicionado no click da grade JTable. Clique com botão direito do mouse na grade >> eventos >> Mouse >> mouseClicked. Conforme imagem abaixo. if (candidatos1.getFoto() != null) { if (!candidatos1.getFoto().equals(null)) { jLabel2.setIcon(new ImageIcon(candidatos1.getFoto())); } } else { jLabel2.setIcon(null); } Abaixo imagem de como vai ficar: Lembre-se de alterar o candidatos1 para a entidade que foi arrastada para seu formulário e também o “setFoto” para o seu método.
Compartilhar