#java #oracle #swing #jasper-reports
#java #Oracle #качать #jasper-отчеты
Вопрос:
Как я могу просмотреть мой файл jrxml внутри JFrame
?
У меня есть следующий Java-код:
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JFrame;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.swing.JRViewer;
public class Test extends JFrame {
private Connection conn = null; // database connection
public Test() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE",
"test", "test");
JasperReport report = JasperCompileManager.compileReport("report1.jrxml");
JasperPrint print = JasperFillManager.fillReport(report, null, conn);
JRViewer viewer = new JRViewer(print);
viewer.setOpaque(true);
viewer.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
}
}
setSize(500, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Test();
}
}
Однако, когда я попытался запустить его, я получил следующее сообщение об ошибке:
log4j:WARN No appenders could be found for logger(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
log4j:WARN Please initialize the log4j system properly.
Мой JFrame
появляется, но без отчета, который я хочу внедрить.
Как вы думаете, в чем моя ошибка?
Ответ №1:
JRViewer
является JPanel
, поэтому вместо..
viewer.setVisible(true);
Положил ..
// Add the viewer to the frame
add(viewer);
В качестве отступления:
} catch (Exception e) {
}
Измените это на..
} catch (Exception e) {
e.printStackTrace();
}
Комментарии:
1. Спасибо за ваш ответ! Теперь я могу просматривать свой JRView внутри моего JFrame, но я все еще получал предупреждающие сообщения. Не могли бы вы сказать мне причину?