Olá a todos,
Estou usando o NetBean para desenvolver um projeto para uma empresa, dentro da IDE estava perfeito, mas quando compilei e executei o programa, notei que uma das minha telas não estava abrindo (e ela estava normal dentro da IDE). Na minha analise, descobri que a classe abaixo que não funciona quando compilado, pois, se eu desativar seus métodos, ela funciona normalmente.
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package UTIL;import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.logging.Level; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JOptionPane;/**
*
@author marcelosiedler
*/
public class ManipularImagem {/*
Faz redimensionamento da imagem conforme os parâmetros imgLargura e imgAltura mantendo a proporcionalidade.
Caso a imagem seja menor do que os parâmetros de redimensionamento, a imagem não será redimensionada.
@param caminhoImg caminho e nome da imagem a ser redimensionada.
@param imgLargura nova largura da imagem após ter sido redimensionada.
@param imgAltura nova altura da imagem após ter sido redimensionada.
@return Não há retorno
@throws Exception Erro ao redimensionar imagem ************************************************************************************************************/ public static BufferedImage setImagemDimensao(String caminhoImg, Integer imgLargura, Integer imgAltura) { Double novaImgLargura = null; Double novaImgAltura = null; Double imgProporcao = null; Graphics2D g2d = null; BufferedImage imagem = null, novaImagem = null;try { //— Obtém a imagem a ser redimensionada — imagem = ImageIO.read(new File(caminhoImg)); } catch (IOException ex) { JOptionPane.showMessageDialog(null, "Erro: " +ex); Logger.getLogger(ManipularImagem.class.getName()).log(Level.SEVERE, null, ex); }//— Obtém a largura da imagem —
novaImgLargura = (double)imagem.getWidth();//— Obtám a altura da imagem —
novaImgAltura = (double)imagem.getHeight();//— Verifica se a altura ou largura da imagem recebida é maior do que os — //— parâmetros de altura e largura recebidos para o redimensionamento — if (novaImgLargura >= imgLargura) { imgProporcao = (novaImgAltura / novaImgLargura);//calcula a proporção novaImgLargura = (double) imgLargura;//--- altura deve <= ao parâmetro imgAltura e proporcional a largura --- novaImgAltura = (novaImgLargura * imgProporcao); //--- se altura for maior do que o parâmetro imgAltura, diminui-se a largura de --- //--- forma que a altura seja igual ao parâmetro imgAltura e proporcional a largura --- while (novaImgAltura > imgAltura) { novaImgLargura = (double) (--imgLargura); novaImgAltura = (novaImgLargura * imgProporcao); } } else if (novaImgAltura >= imgAltura) { imgProporcao = (novaImgLargura / novaImgAltura);//calcula a proporção novaImgAltura = (double) imgAltura; //--- se largura for maior do que o parâmetro imgLargura, diminui-se a altura de --- //--- forma que a largura seja igual ao parâmetro imglargura e proporcional a altura --- while (novaImgLargura > imgLargura) { novaImgAltura = (double) (--imgAltura); novaImgLargura = (novaImgAltura * imgProporcao); } } novaImagem = new BufferedImage(novaImgLargura.intValue(), novaImgAltura.intValue(), BufferedImage.TYPE_INT_RGB); g2d = novaImagem.createGraphics(); g2d.drawImage(imagem, 0, 0, novaImgLargura.intValue(), novaImgAltura.intValue(), null); return novaImagem;}
public static byte[] getImgBytes(BufferedImage image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ImageIO.write(image, “JPEG”, baos); } catch (IOException ex) { //handle it here… not implemented yet… }InputStream is = new ByteArrayInputStream(baos.toByteArray()); return baos.toByteArray();} //Novo método para exibir imagem na tela //Recebe o label que queremos exibir E a imagem como array de bytes do banco public static void exibiImagemLabel(byte[] minhaimagem, javax.swing.JLabel label) { //primeiro verifica se tem a imagem //se tem convert para inputstream que é o formato reconhecido pelo ImageIOif(minhaimagem!=null) { InputStream input = new ByteArrayInputStream(minhaimagem); try { BufferedImage imagem = ImageIO.read(input); label.setIcon(new ImageIcon(imagem)); } catch (IOException ex) { } } else { label.setIcon(null); }}
}
Essa é a classe com os métodos.
public void inserir() throws SQLException { conexaoBD.conexao(); // INSERIR CABECALHO conexaoBD.executaSQL(“SELECT * FROM TBL_CABECALHO WHERE CABECALHO_ID = 1”); try { if (conexaoBD.rs.next()) { jTextFieldLinha1.setText(conexaoBD.rs.getString(“CABECALHO_1”)); jTextFieldLinha2.setText(conexaoBD.rs.getString(“CABECALHO_2”)); jTextFieldLinha3.setText(conexaoBD.rs.getString(“CABECALHO_3”)); jTextFieldLinha4.setText(conexaoBD.rs.getString(“CABECALHO_4”));jLabelImagem.setIcon(byteI.byteImg(conexaoBD.rs.getBytes("CABECALHO_LOGO"))); } conexaoBD.rs.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro: " + e); } // INSERIR EMPRESA conexaoBD.executaSQL("SELECT * FROM TBL_EMPRESA WHERE EMPRESA_ID = 1"); try { if (conexaoBD.rs.next()) { jTextFieldNomeFantasia.setText(conexaoBD.rs.getString("EMPRESA_NOME")); jTextFieldRazaoSocial.setText(conexaoBD.rs.getString("EMPRESA_RAZAO")); jTextFieldCNPJ.setText(conexaoBD.rs.getString("EMPRESA_CNPJ")); jTextFieldEndereco.setText(conexaoBD.rs.getString("EMPRESA_ENDERECO")); jTextFieldBairro.setText(conexaoBD.rs.getString("EMPRESA_BAIRRO")); jTextFieldNumero.setText(conexaoBD.rs.getString("EMPRESA_NUMERO")); jTextFieldComplemento.setText(conexaoBD.rs.getString("EMPRESA_COMPLEMENTO")); } conexaoBD.rs.close(); conexaoBD.conexao().close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Erro: " + e); } }
E esse é o método do meu Frame que chama a classe com problema.
Quando eu compilo aparece os dizeres em vermelho:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Não sei se tem alguma coisa relacionada, mas está ai.
Se alguém souber como resolver isso, eu agradeceria.
Att.
