Java : JPanel drucken

Hallo,
Ich bin im mom dabei ein Java Programm zuschreiben und bis soo gut wie fertig!
Das einziege wo es drann hagt ist das Drucken!
kurz zur Beschreibung des Programms:

Habe Mietobjekte mit den eigenschaften: name, adresse, BLZ, Kontonr.
Die werden in einer Arraylist gespeichert und in ein Pannel geschrieben… wird auch sauber angezeigt… wenn ich es drucken will und mir das resultat des druckens angucke wird nur das 1. geaddete JLabel ausgedruckt!
Wodrann kann das Liegen??

Hier noch der Code:

In der Klasse müsste (schätz ich mal) das Problem sein!
///////////////// Klasse PrintPanel///////////
public class PrintPanel extends JPanel implements Printable{
ArrayList a;
PrintPanel(ArrayList a){
this.a = a;
JPanel panel = null;
JLabel ueberschrift = new JLabel();
JLabel[] name = new JLabel[a.size()];
JLabel[] strasse = new JLabel[a.size()];
JLabel[] ort = new JLabel[a.size()];
JLabel[] blz = new JLabel[a.size()];
JLabel[] ktnr = new JLabel[a.size()];

int seiten=1;

setBounds(0, 0, 300, 500);
setLayout(null);
setBackground(new Color(255,255,255));
add(ueberschrift);

int j=0;
seiten=0;
for (int i=0; i 3) {
return(NO_SUCH_PAGE);
} else {
//int x = (int)pageFormat.getImageableX() + 1;
//int y = (int)pageFormat.getImageableY() + 1;
//g.translate(x,y);
//RepaintManager currentManager = RepaintManager.currentManager(this);
//currentManager.setDoubleBufferingEnabled(false);
//this.addNotify();
paint(g);
//currentManager.setDoubleBufferingEnabled(true);
return(PAGE_EXISTS);
}
}
}

/////
Das ist das Frame zur Anzeige der Eigenschaften der ganzen Mietobjekte was auch klappt!
///////////////Klasse DruckenGUI//////////////////////
public class DruckenGUI extends JFrame implements ActionListener{
PrintPanel p;
DruckenGUI(ArrayList a, int typ){
this.setSize(400, 600);
Container cp = getContentPane();
//cp = new JDialog(Main.g.cp, true);
cp.setBounds(100, 100, 300, 500);
JScrollPane sp = new JScrollPane();
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

p = new PrintPanel(a);

sp.setViewportView§;
sp.getViewport().setOpaque(false);
sp.setAutoscrolls(true);
add(„Center“, sp);

JButton printButton = new JButton(„Print This Window“);
printButton.addActionListener(this);
cp.add(„South“, printButton);
//System.out.println("Panels: "+panel.length);
setVisible(true);
}

public void actionPerformed(ActionEvent arg0) {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable§;
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}

}
}

Ich würde mich über eine Lösung freuen!
lg Sven