Impressão

E aí pessoal blz!!
Estou com um probleminha para imprimir um relatório de clientes.
Quando o relatório ocupa só uma página, imprime correto, mas
quando o relatório ocupa mais de uma página, não imprime.
Se por exemplo deu 3 páginas, ele imprime a primeira página
3 vezes.
Se alguém souber me ajudar, eu preciso disso o mais rápido possível!!!

Valeu!!!

Abaixo segue parte do código:

//evento do botão imprimir
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
PrinterJob impressora = PrinterJob.getPrinterJob();
impressora.setPrintable(this);

 if(impressora.printDialog())
 {
  try
  {
   impressora.print();
  }
  catch(Exception erro)
  {
   JOptionPane.showMessageDialog(null,"Erro ao   imprimir!!!","Aviso",JOptionPane.ERROR_MESSAGE);   
  }
 }
}//GEN-LAST:event_jButton2ActionPerformed

public int print(Graphics g, PageFormat formato, int pagina)
{
 Graphics2D tela;
 tela = (Graphics2D) g;
 tela.translate(formato.getImageableX(),formato.getImageableY());

 if(pagina == 0)
 {  
  String codigo = "";
  String nome = ""; 
           
  tela.drawString("Relatório de Clientes", 125, 50);
  
  tela.drawString("Código", 3, 95);
  tela.drawString("Nome", 45, 95);

  int linha = 120;
  linhas = modelo.getRowCount();
  
  for(int i = 0; i < linhas; i++)
  {
   codigo = "" + modelo.getValueAt(i,0);
   nome = "" + modelo.getValueAt(i,1);
   
   tela.drawString(codigo, 3, linha);
   tela.drawString(nome, 45, linha);

   linha += 15;
  }    
  
  return(PAGE_EXISTS);
 }
 else
  return(NO_SUCH_PAGE);    
}