Ich habe eine kleine Applikation („Einkaufsliste“) gebaut. Nun soll diese Liste über einen Menüpunkt „Drucken“ ausgedruckt werden können. Mit dem Thema Drucken bin ich bisher noch nicht konfrontiert worden (Vorsicht: Anfänger
). Also, was ich bisher weiß, ist, dass ich das mit dem Interface Printable ausprobieren möchte. Dieses beinhaltet die Methode print mit den drei Parametern Graphics, PageFormat und int. Aufgerufen wird diese Methode von einem PrinterJob-Objekt, welches ich zuvor über PrinterJob.getPrinterJob() erzeuge.
Soweit ist hoffentlich schon mal alles richtig ? 
Wie zum Henker bekomme ich jetzt aber meine JList, welche ja letztlich die „Einkaufsliste“ beinhaltet, in den Graphics-Parameter der print-Methode? Und was ist mit den anderen Parametern?
So, ich wälz’ jetzt mal noch Literatur und falls in der Zwischenzeit mir jemand von Euch auf die Sprünge helfen möchte, bin ich demjenigen jetzt schon dankbar!
Gruß, Lars
JList druckbar machen - PrinterJob & Co
Hallo nochmal!
Also, konkret sieht die Sach jetzt folgendermaßen aus:
Ich habe eine Klasse…
public class InhaltNEU extends JPanel
implements ActionListener, WindowListener, Printable
…in deren Konstruktor eine JList kreiert wird. Über eine andere Klasse wird diese in einem JFrame dann sichtbar gemacht, welches dann meine Anwendung „Einkaufsliste“ ist, was aber für den weiteren Zusammenhang nicht besonders wichtig ist.
Nun soll also diese JList, die mit einem DefaultListModel verbunden ist, ausgedruckt werden können. Sprich: wenn jemand im JFrame auf den Menüeintrag „Drucken“ klickt, soll der Inhalt der JList oder eben auch das, was im DefaultListModel eingetragen ist, ausgedruckt werden.
Zu diesem Zwecke habe ich im zum Menüeintrag „Drucken“ zugehörigen ActionListener bisher folgendes eingetippt:
if(ae.getActionCommand().equals(„Drucken“))
{
PrinterJob druckJob = PrinterJob.getPrinterJob();
druckJob.setPrintable(this);
try
{
if(druckJob.printDialog())
{
druckJob.print();
}
}
catch (PrinterException pe)
{
JOptionPane.showMessageDialog(null, "Leider gab es einen Fehler " +
„bei der Druckanweisung.“);
}
}
Dann gibt es in derselben Klasse noch eine print-Methode:
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
{
if(pageIndex == 1)
{
int x = 10;
int y = 10;
this.graphics = graphics;
for(int i=0; i