2011-11-13 2 views
2

JFrame 안에 jrxml 파일을 보려면 어떻게해야합니까?JFrame에 JasperReport jrxml로드

나는 다음과 같은 자바 코드 한 : 내가 원하는 보고서없이

log4j:WARN No appenders could be found for logger(net.sf.jasperreports.engine.xml.JRXmlDigesterFactory). 

log4j:WARN Please initialize the log4j system properly. 

JFrame 나타납니다하지만,하지만, 그러나

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(); 
    } 
} 

, 내가 그것을 실행하려고, 나는 다음과 같은 오류 메시지를 수신 퍼지.

무엇이 내 실수라고 생각하세요?

답변

3

JRViewer 그래서 대신하는 JPanel입니다 ..

viewer.setVisible(true); 

넣어 .. 여담으로

// Add the viewer to the frame 
add(viewer); 


:

} catch (Exception e) { 
} 

변경에 관한 것이다.

} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

답장을 보내 주셔서 감사합니다. 이제 JFrame에서 내 JRView를 볼 수 있지만 경고 메시지가 계속 나타납니다. 이유를 말해 주시겠습니까? – epsac

+0

이미 답변을 수락합니다. 감사 앤드류! ;-) – epsac