Announcement

Collapse
No announcement yet.

Aktualisierung der Grafik/ Panels?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Aktualisierung der Grafik/ Panels?!

    Hallo,

    ich habe folgendes Problem:
    Ich habe eine Tabelle in einem ScrollPane und möchte diese Drucken.
    Um alle Daten auch über mehrere Seiten zu drucken, vergrößere ich einfach das Fenster und das ScrollPane direkt vor dem Druck, so dass auch kein ScrollBar mehr zu sehen ist.
    Unverständlich für mich ist, dass, wenn ich diese Anpassung über einen Button unabhängig von dem Druck ausführe, funktioniert es; setze ich es aber direkt in die Druckmethode ein, geht es nicht. Scheinbar aktualisiert er die Grafik nicht mehr vorher, denn nach dem "falschen" Druck liegt das gewünschte Layout vor.

    <PRE>
    void jBtnPrint_actionPerformed(ActionEvent e) {
    Book book = new Book();
    PageFormat format = new PageFormat();
    Paper paper = new Paper();
    try {
    setPrintSettings(); // setzt Layoutanpassung
    PrinterJob printJob = PrinterJob.getPrinterJob();

    // Seite einrichten
    paper.setSize(set.A4_BREITE, set.A4_HOEHE);
    paper.setImageableArea(set.toPoints(10.0), set.toPoints(10.0),
    set.A4_BREITE - 2 * set.toPoints(10),
    set.A4_HOEHE - 2 * set.toPoints(10));
    format.setOrientation(PageFormat.LANDSCAPE);
    format.setPaper(paper);

    format = printJob.pageDialog(format);

    System.out.println("paper: "+(paper.getImageableHeight()-paper.getImageableY())+" ; panel: "+jPnlMain.getHeight());
    System.out.println("Anzahl Seiten:"+jPnlMain.getCountPages(paper.getImageable Width()-paper.getImageableX(), jPnlMain.getHeight()));
    for (int i = 0;
    i < jPnlMain.getCountPages(paper.getImageableWidth()-paper.getImageableX(), jPnlMain.getHeight());
    ++i) {
    book.append(jPnlMain, format);
    }

    printJob.setPageable(book);

    // drucken
    if (printJob.printDialog())
    try {
    printJob.print();
    }
    catch(PrinterException pe) {
    System.out.println("Error printing: " + pe);
    }
    }
    finally {
    resetPrintSettings(); // setzt Layout urück
    }
    }
    </PRE>
Working...
X