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.