2011-09-17 6 views
0

동일한 페이지에 2 개의 JPanel을 인쇄하려고 시도했지만 각 jpanel은 절반 페이지에 완벽하게 맞습니다.동일한 페이지에 두 개의 JPanels 인쇄

내가하는 일은 Printable을 구현하는 다른 jpanel에서 jpanels을 래핑하는 것입니다.

문제 만이 래퍼 JPanel의

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) 
      throws PrinterException 
    { 

     if (pageIndex == 0) 
     { 
      Graphics2D g2 = (Graphics2D) graphics; 
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
        RenderingHints.VALUE_ANTIALIAS_ON);    
      g2.scale(.485, .473);  
      paint(graphics);  
      g2.setColor(Color.white); 
      g2.fillRect(0, 0, 1, 1); 

      return Printable.PAGE_EXISTS; 
     } else 
     { 
      return Printable.NO_SUCH_PAGE; 
     } 

    } 
의 코드, 첫 번째 (위) JPanel을 제대로

페이지의 나머지 부분은 회색 사각형

으로 가득를 인쇄 할 것입니다

이 호출 코드는

PrinterJob pj = PrinterJob.getPrinterJob(); 
     pj.setJobName("Factura Procter & Gamble"); 

     if (pj.printDialog()) 
     { 
      try 
      { 
       for (int i = 0; i < 1; i++) 
       { 
        pj.setPrintable(listaPaneles.get(i)); 
        pj.print(); 

       } 
      } catch (PrinterException e) 
      { 
       System.out.println(e); 
      } 
     } 

, 감사합니다 좀 도와주세요.

+0

문제가 해결되었습니다. 도움을 주신 덕분에 –

답변

1

첫째, 난 당신이

for (JPanel jPanel : listaPaneles) 
{ 
    pj.setPrintable(jPanel); 
    pj.print(); 
} 

이 두 번째로, 어쩌면 다른 내부에 두 개의 패널을 포장 할 필요가

시도 대신

for (int i = 0; i < 1; i++) 
{ 
    pj.setPrintable(listaPaneles.get(i)); 
    pj.print(); 
} 

그들에게 모든

인쇄되지 않은 생각 Printable 컨테이너 및이 하나만 인쇄하십시오.

+0

FOR에 대한 문제가 의도적이었습니다. 문제는 테두리 레이아웃이었습니다. –

관련 문제