Já postei este problema esta semana mas como o tópico acabou ficando meio confuso, eu resolvi abrir outro para tentar resolver (peço mil desculpas aos administradores do fórum). O problema é o seguinte: desenvolvi um sistema básico para efetuar um controle no trabalho em NetBeans e MySQL e os relatórios desenvolvi no IReport (Plug-in no NetBeans), tudo isso num notebook com Windows Vista. No notebook, dentro do NetBeans e fora dele, os relatórios funcionan normalmente (adicionei os arquivos do IReport na "lib" e tambem os .jar ao projeto, incluindo também o mysql. connector). Quando fiz a distribuição do sistema para a máquina de destino, os relatórios sisplesmente não iniciam (a máquina tem Windows XP SP2). Já li, reli, tentei de tudo e por isso venho insistentemente pedindo um help. A seguir vai a classe a qual consta um dos relatórios e a conexão.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.sql.*;
/**
*
* @author Cláudio Rocha
*/
public class BD {
public static Connection cnn = null;
public static Statement st = null;
public static ResultSet rs = null;
public static boolean getConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
cnn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/bdantt?user=root&password=lucas&useUnicode=true");
st = (Statement) cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
System.out.println("Conectou");
return true;
}
catch(ClassNotFoundException erro)
{
erro.printStackTrace();
return false;
}
catch(SQLException erro)
{
erro.printStackTrace();
return false;
}
}
public static void close()
{
closeResultSet();
closeStatement();
closeConnection();
}
private static void closeConnection()
{
try
{
cnn.close();
System.out.println("Desconectou");
}
catch(SQLException erro)
{
erro.printStackTrace();
}
}
private static void closeStatement()
{
try
{
st.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
private static void closeResultSet()
{
try
{
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void setResultSet(String sql)
{
try
{
rs = st.executeQuery(sql);
}
catch(SQLException erro)
{
erro.printStackTrace();
}
}
public static int runSQL(String sql)
{
int quant = 0;
try
{
quant = st.executeUpdate(sql);
}
catch(SQLException erro)
{
erro.printStackTrace();
}
return quant;
}
}
/*
* TelaFolhaRosto.java
*
* Created on 26 de Outubro de 2009, 16:02
*/
import java.awt.Color;
import java.net.URL;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author Cláudio Rocha
*/
public class TelaFolhaRosto extends javax.swing.JFrame {
Color cinzaClaro = new Color(232,232,232);
public String varIdNrAI;
public String varIdNrTal;
/** Creates new form TelaFolhaRosto */
public TelaFolhaRosto() {
initComponents();
inibeCampos();
}
private void inibeCampos(){
txtAutuado.setEnabled(false);
txtAutuado.setBackground(cinzaClaro);
cmdImprimir.setEnabled(false);
cmdLimpar.setEnabled(false);
}
private void liberaCampos(){
txtAutuado.setEnabled(true);
txtAutuado.setBackground(Color.white);
cmdImprimir.setEnabled(true);
cmdLimpar.setEnabled(true);
}
private void LimpaCampos(){
txtNrAI.setValue(null);
txtNrTal.setValue(null);
txtAutuado.setText("");
}
private void pesquisaAI(){
try
{
String sql = "SELECT NRAI, NRTALAO, AUTUADO FROM TABAIS INNER JOIN TABAUTUADOS USING (IDAUTUADO) " +
"WHERE NRAI = '" + txtNrAI.getText() + "'AND NRTALAO = '" + txtNrTal.getText() + "'";
BD.setResultSet(sql);
if (BD.rs.first())
{
liberaCampos();
txtAutuado.setText(BD.rs.getString("AUTUADO"));
varIdNrAI = BD.rs.getString("NRAI");
varIdNrTal = BD.rs.getString("NRTALAO");
cmdImprimir.requestFocus();
}
else
{
JOptionPane.showMessageDialog(null,"Nº de Auto de Infração Não Cadastrado. Verifique!");
LimpaCampos();
txtNrAI.requestFocus();
}
}
catch(Exception erro)
{
JOptionPane.showMessageDialog(null,"Erro:"+erro.getMessage());
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
txtNrAI = new javax.swing.JFormattedTextField();
jLabel2 = new javax.swing.JLabel();
txtNrTal = new javax.swing.JFormattedTextField();
txtAutuado = new CamposMaiusculas();
jLabel3 = new javax.swing.JLabel();
cmdImprimir = new javax.swing.JButton();
cmdLimpar = new javax.swing.JButton();
cmdSair = new javax.swing.JButton();
setTitle("Impressão de Folha de Rosto");
setResizable(false);
jPanel1.setBackground(java.awt.Color.white);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Dados Auto de Infração", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 14))); // NOI18N
jLabel1.setFont(new java.awt.Font("Arial", 0, 14));
jLabel1.setText("Nº do AI"); // NOI18N
txtNrAI.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
try {
txtNrAI.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#######")));
} catch (java.text.ParseException ex) {
ex.printStackTrace();
}
txtNrAI.setFont(new java.awt.Font("Arial", 0, 14));
txtNrAI.setName("txtNrAI"); // NOI18N
txtNrAI.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtNrAIActionPerformed(evt);
}
});
jLabel2.setFont(new java.awt.Font("Arial", 0, 14));
jLabel2.setText("Nº do Talão"); // NOI18N
txtNrTal.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
try {
txtNrTal.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####")));
} catch (java.text.ParseException ex) {
ex.printStackTrace();
}
txtNrTal.setFont(new java.awt.Font("Arial", 0, 14));
txtNrTal.setName("txtNrTal"); // NOI18N
txtNrTal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtNrTalActionPerformed(evt);
}
});
txtAutuado.setFont(new java.awt.Font("Arial", 0, 14));
txtAutuado.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
txtAutuado.setName("txtAutuado"); // NOI18N
jLabel3.setFont(new java.awt.Font("Arial", 0, 14));
jLabel3.setText("Nome");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtNrAI, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(82, 82, 82)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtNrTal, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(151, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(txtAutuado, javax.swing.GroupLayout.PREFERRED_SIZE, 478, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(69, 69, 69))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(27, 27, 27)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtNrAI, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(txtNrTal, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(txtAutuado, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
cmdImprimir.setFont(new java.awt.Font("Arial", 0, 14));
cmdImprimir.setText("Imprimir");
cmdImprimir.setName("cmdLimpar"); // NOI18N
cmdImprimir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdImprimirActionPerformed(evt);
}
});
cmdLimpar.setFont(new java.awt.Font("Arial", 0, 14));
cmdLimpar.setText("Limpar");
cmdLimpar.setName("cmdLimpar"); // NOI18N
cmdLimpar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdLimparActionPerformed(evt);
}
});
cmdSair.setFont(new java.awt.Font("Arial", 0, 14));
cmdSair.setText("Sair");
cmdSair.setName("cmdLimpar"); // NOI18N
cmdSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdSairActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jPanel1, 0, 577, Short.MAX_VALUE)
.addContainerGap(23, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(48, Short.MAX_VALUE)
.addComponent(cmdImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(77, 77, 77)
.addComponent(cmdLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(72, 72, 72)
.addComponent(cmdSair, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(44, 44, 44))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cmdImprimir, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmdLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmdSair, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(31, Short.MAX_VALUE))
);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-638)/2, (screenSize.height-289)/2, 638, 289);
}// </editor-fold>
private void txtNrAIActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
txtNrTal.requestFocus();
}
private void txtNrTalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
pesquisaAI();
}
private void cmdImprimirActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
ImprimirFolhaRosto();
// try
// {
// ImprimeFolhaRosto imprimir = new ImprimeFolhaRosto();
// imprimir.ImprimirFolhaRosto(varIdNrAI.toString(), varIdNrTal.toString());
// }
// catch(Exception e)
// {
// Logger.getLogger(TelaFolhaRosto.class.getName()).log(Level.SEVERE, null, e);
// }
}
private void cmdLimparActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
LimpaCampos();
inibeCampos();
txtNrAI.requestFocus();
}
private void cmdSairActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TelaFolhaRosto.this.setVisible(false);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TelaFolhaRosto().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton cmdImprimir;
private javax.swing.JButton cmdLimpar;
private javax.swing.JButton cmdSair;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField txtAutuado;
public javax.swing.JFormattedTextField txtNrAI;
private javax.swing.JFormattedTextField txtNrTal;
// End of variables declaration
public void ImprimirFolhaRosto(){
try{
HashMap<String, String> parameterMap =
new HashMap<String, String>();
parameterMap.put("PAR_NRAI", varIdNrAI);
parameterMap.put("PAR_NRTAL", varIdNrTal);
URL arquivo = getClass().getResource("FolhaRosto.jasper");
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(arquivo);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameterMap, BD.cnn);
JasperViewer jrviewer = new JasperViewer(jasperPrint,false);
jrviewer.setVisible(true);
}
catch(JRException e)
{
e.printStackTrace();
}
}
}
