Pessoal, fiz um relatório usando o plugin do ireport, passo os parametros e a query toda no proprio ireport, preciso apenas criar um botão no meu aplicativo que chame o relatório como faço?
Você fez o método para gerar o relatório?
Segue meu metodo, ele está dando um alert com a segunte mensagem de erro
java.lang.nullpointerexception
[code] public cad_cli(conexao conectado) {
initComponents();
con = conectado;
}
private void imprimirRelatorio(){
try {
URL arquivo = getClass().getResource("C:/Users/Rodolpho/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper");
Map<String, Object> map = new HashMap<String, Object>();
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(arquivo);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con.conectar());
JasperViewer jrviewer = new JasperViewer(jasperPrint, false);
jrviewer.setVisible(true);
jrviewer.toFront();
}catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
[/code]
Segue meu arquivo de conexão com o banco, apesar de que eu to criando uma conexão nova no ireport… não sei se é necessario passar a conexão como parametro, enfim segue:
[code]public class conexao {
private String driver="com.mysql.jdbc.Driver";
private Connection Conexao;
public Statement statemente;
public ResultSet resultset;
public conexao() {
}
public boolean conectar()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String URL="jdbc:mysql://localhost:3306/yamada";
String username="root";
String passwd="yamada";
Conexao = (Connection) DriverManager.getConnection(URL,username,passwd);
System.out.println("conectou !!!");
return true;
}catch(Exception ef)
{
return false;
}
}
public boolean executeSQL(String sql)
{
try {
statemente = (Statement) Conexao.createStatement();
resultset = statemente.executeQuery(sql);
return true;
} catch (SQLException ex) {
System.out.println(ex.getMessage());
return false;
}
}[/code]
Segue tb o xml do relatório:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="18c41368-3840-4b5e-8235-eb7edd299f9e">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="Heading 1" fontSize="16" isBold="true"/>
<parameter name="primeiroNome" class="java.lang.String">
<parameterDescription><![CDATA[Valor do primeiro nome do Cliente]]></parameterDescription>
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT * FROM cliente
WHERE nome LIKE "%$P!{primeiroNome}%"
]]>
</queryString>
<field name="id_cli" class="java.lang.Integer"/>
<field name="nome" class="java.lang.String"/>
<field name="endereco" class="java.lang.String"/>
<field name="telefone" class="java.lang.String"/>
<field name="celular" class="java.lang.String"/>
<field name="cpf" class="java.lang.String"/>
<field name="cheque" class="java.lang.String"/>
<field name="bloqueado" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="24" splitType="Stretch">
<staticText>
<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="11" y="2" width="100" height="20"/>
<textElement/>
<text><![CDATA[Nome]]></text>
</staticText>
<staticText>
<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="139" y="0" width="276" height="20"/>
<textElement/>
<text><![CDATA[Endereço]]></text>
</staticText>
<staticText>
<reportElement uuid="86991171-81d7-4446-96d8-56b5c3d810f8" x="294" y="0" width="100" height="20"/>
<textElement/>
<text><![CDATA[Telefone]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="42" splitType="Stretch">
<textField>
<reportElement uuid="186c6461-7149-4163-9cff-7dea4445c28d" x="11" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{nome}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="52afccc0-d051-463b-9b31-d68a1b13afb6" x="294" y="0" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{telefone}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="fe784d4a-5fde-4776-bf76-1e9f6e1399cd" x="139" y="0" width="155" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{endereco}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
No método actionPerformed() do componente JButton, chave seu método imprimirRelatorio().
JButton imprimeButton = new JButton("Imprimir");
imprimeButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
imprimirRelatorio();
}
});
Segue o código que eu fiz no button, mas quando clico nele simplesmente não faz nada nem gera mensagem de erro nem nada
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
JButton jButton3 = new JButton("Imprimir");
jButton3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
imprimirRelatorio();
}
});
}
Rodolpho,
Este método jButton3ActionPerformed(), salvo engano, deve estar sendo chamado pelo método actionPerformed() do seu jButton3.
Se for, basta chamar dentro deste método o imprimirRelatorio()
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
imprimirRelatorio();
});
Tente entender o que acontece quando você clica num objeto JButton. Grosseiramente acontece o seguinte:
- É disparado um ‘evento’ para todos os Listeners registrados do componente.
- Quando um Listener recebe um evento, ele chama o método actionPerformed para executar o que estiver alí dentro.
- Na sua classe, o método actionPerformed deste jButton3 deve estar chamando o método jButton3ActionPerformed.
Certo, agora eu troquei o código de
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
JButton jButton3 = new JButton("Imprimir");
jButton3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
imprimirRelatorio();
}
});
}
passei para
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
imprimirRelatorio();
});
tive que retirar o ); no final pois estava dando erro, dai ele voltou como era antes, dando o erro do java.lang.nullpointerexception
[quote=rodolpho.netto]
tive que retirar o ); no final pois estava dando erro, dai ele voltou como era antes, dando o erro do java.lang.nullpointerexception [/quote]
Seja mais específico para podermos ajudar. Poste o erro completo.
Uso sempre esse código e nunca falhou, ai vai:
public void chamaRelatorioRecibo() {
try {
Connection conexao = Conexao.ligarBd();
HashMap parametros = new HashMap();
parametros.put("CODIGO_VENDA", txtCodigoVenda.getText());
parametros.put("DATA_VENDA", txtData.getText());
parametros.put("HORA_VENDA", txtHora.getText());
JasperPrint jp = JasperFillManager.fillReport("./relatorios/persistech/factura_persistec.jasper", parametros, conexao);
//JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
Qualquer duvida e perguntar…
Não consegui passar as funções de conexão, então deixei sem elas ja que está sendo feito direto no relatório, usei o seguinte código e recebi o seguinte erro
[code] public void chamaRelatorioRecibo() {
try {
HashMap parametros = new HashMap();
parametros.put("primeiroNome", primeiroNome.getText());
JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
//JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}[/code]
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:97)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:69)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757)
at yamada3.cad_cli.chamaRelatorioRecibo(cad_cli.java:109)
at yamada3.cad_cli.jButton3ActionPerformed(cad_cli.java:343)
at yamada3.cad_cli.access$200(cad_cli.java:31)
at yamada3.cad_cli$3.actionPerformed(cad_cli.java:216)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:686)
at java.awt.EventQueue$4.run(EventQueue.java:684)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:683)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 60 more
[quote=rodolpho.netto]Não consegui passar as funções de conexão, então deixei sem elas ja que está sendo feito direto no relatório, usei o seguinte código e recebi o seguinte erro
[code] public void chamaRelatorioRecibo() {
try {
HashMap parametros = new HashMap();
parametros.put("primeiroNome", primeiroNome.getText());
JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
//JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}[/code]
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:97)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:69)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:122)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757)
at yamada3.cad_cli.chamaRelatorioRecibo(cad_cli.java:109)
at yamada3.cad_cli.jButton3ActionPerformed(cad_cli.java:343)
at yamada3.cad_cli.access$200(cad_cli.java:31)
at yamada3.cad_cli$3.actionPerformed(cad_cli.java:216)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713)
at java.awt.EventQueue.access$000(EventQueue.java:104)
at java.awt.EventQueue$3.run(EventQueue.java:672)
at java.awt.EventQueue$3.run(EventQueue.java:670)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:686)
at java.awt.EventQueue$4.run(EventQueue.java:684)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:683)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 60 more
[/quote]
Qual versao do Ireport voce esta utilizando?
A geração do relatório você nao precisa importar para o ClassPath todos as libs, apenas algumas…
Possivelmente esta ocorrendo um conflito de LIB, isso aconteceu comigo da outra vez em que estava utilizando.
eu uso a versao 4.7.0 onde as libs necessarias são:
commons-digester-2.1.jar
commons-beanutils-1.8.2.jar
commons-collections-3.2.1.jar
commons-javaflow-20060411.jar
commons-logging-1.1.jar
groovy-all-1.7.5.jar
jasperreports-4.7.0.jar
iText-2.1.7.jar
Eu gero meu relatorio atraves de uma objeto BEEN, caso ele reclame mais alguma coisa adicione com cautela os demais JAR.
Opa, agora ele chamou meu relatório porem deu documento em branco e o seguinte erro:
Set 11, 2012 7:25:32 AM net.sf.jasperreports.engine.query.JRJdbcQueryExecuter <init>
WARNING: The supplied java.sql.Connection object is null.
isso se deve ao fato de eu não ter colocado a conexão nos parametros do botão, mas nao sei como passar esse parametro, segue minha classe de conexão!
[code]package conexao;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class conexao {
private String driver="com.mysql.jdbc.Driver";
private Connection Conexao;
public Statement statemente;
public ResultSet resultset;
public conexao() {
}
public boolean conectar()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String URL="jdbc:mysql://localhost:3306/yamada";
String username="root";
String passwd="yamada";
Conexao = (Connection) DriverManager.getConnection(URL,username,passwd);
System.out.println("conectou !!!");
return true;
}catch(Exception ef)
{
return false;
}
}
public boolean executeSQL(String sql)
{
try {
statemente = (Statement) Conexao.createStatement();
resultset = statemente.executeQuery(sql);
return true;
} catch (SQLException ex) {
System.out.println(ex.getMessage());
return false;
}
}
[/code]
e meu botão
[code] public void chamaRelatorioRecibo() {
try {
HashMap parametros = new HashMap();
parametros.put("primeiroNome", primeiroNome.getText());
JasperPrint jp = JasperFillManager.fillReport("C:/Users/rodolpho.netto/Dropbox/Gestão em T.I/3° Semestre/java/Yamada3/src/yamada3/clientes.jasper", parametros);
//JasperExportManager.exportReportToPdfFile(jp,"./factura.pdf");
JasperViewer jv = new JasperViewer(jp, false);
jv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}[/code]
passa no método fillReport, no terceiro parametro você coloca a conexao.
Então, essa parte eu até cheguei a ver, só não sei como passo a conexão sabe? nos meus jframes eu já conecto logo de cara, alguém pode analisar minha classe de conexão e me dizer como lanço ela no parâmetro?