Announcement

Collapse
No announcement yet.

array ausdrucken, aber wie?

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

  • array ausdrucken, aber wie?

    Hallo,

    weiss jemand wie mann einen array ausdrucken kann,
    möglichst einfach mit printjob oder so.

    ziel ist es von mir eine spalte einer gridcontrol, die zuvor von einer tabelle über arrays gefüllt wurde auszudrucken.

    wer kann mir helfen???

    besten dank

    steff

  • #2
    Als erstes mußt Du Dir eine neue Klasse erstellen (<b>MeineNeueDruckerklasse()</b>) die das Interface <b>java.awt.print.Printable</b> implementiert. In dem Interface ist nur die Methoden
    <UL>
    <LI><font color=blue>public</font> <font color=red>int</font> <b>print(</b><i>Graphics</i> g, <i>PageFormat</i> pf, <i>int</i> page<b>)</b> throws PrinterException</LI>
    </UL>
    definiert, was bedeutet das Du diese Methode in Deine neu erstellte Klasse hineinschreiben mußt. Das innenleben der Methode bestimmt den Ausdruck und wird analog zu einer <b>Paint()</b> Methode, wie sie z.B. in einem JFrame vorhanden ist, programmiert. Eine Zeichenkette wird so mit der Methode <b>g.drawString(</b><font color=green>"Text"</font>,<font color=blue>10</font>,<font color=blue>10</font><b>)</b> an den Drucker ausgegeben. An dieser Stelle ist übrigens auch die Ausgabe Deines Arrays zu plazieren. Am einfachsten wird das wohl mittels einer <b>For</b> Schleife zu machen sein. <br>
    Der Druckauftrag wird mit der Methode <b>setPrintable(</b><i>Printable</i> painter<b>)</b> an die Klasse <b>java.awt.print.PrintJob</b> weitergegeben. Da Du ja schon eine Klasse erstellt hast, die das Interface <b>Printable</b> implementiert, kannst Du als Parameter dieser Methode z.B. <i><font color=blue>new</font> <b>MeineNeueDruckerklasse()</b></i> nehmen. Jedesmal, wenn eine neue Seite Gedruckt wird, wird die in dem Interface vorhandene Methode <b>print(...)</b> neu aufgerufen. Allein der Parameter <b>page</b> bestimmt, welche Seite gerade ausgedruckt wird. Die Zählung beginnt dabei bei 0. Weiterhin wird das konfigurierte <b>PageFormate</b> der Methode <b>print()</b> in der Klasse <b>MeineNeueDruckerklasse()</b> als Argument mit übergeben. Innerhalb von <b>print()</b> wird es dazu benutzt, die Größe des Papiers und dessen druckbaren Bereich zu ermitteln. Der Rückgabewert der Methode <b>print()</b> gibt an, ob die Seitenzahl gültig war. Ist die Seite gültig, so muß die Methode <b>Printable.PAGE_EXISTS</b> zurückgeben. Anderenfalls <b>Printable.NO_SUCH_PAGE</b>. Der Parameter <b>java.awt.print.PageFormat</b> kann einen der folgende Werte annehmen:
    <UL>
    <LI>java.awt.print.PageFormat.PORTRAIT</LI>
    <LI>java.awt.print.PageFormat.LANDSCAPE</LI>
    <LI>java.awt.print.PageFormat.REVERSE_LANDSCAPE</LI>
    </UL>
    <b>PageFormat</b> bestimmt die Ausrichtung des Ausdruckes. ist der Wert gleich <b>PORTRAIT</b>, so wird das Blatt in seiner Standartausrichtung verwendet. Es ist also höher als breit. <b>LANDSCAPE</b> steht für querformat. <b>REVERSE_LANDSCAPE</b> druckt ebenfalls quer aber in umgekehrter Druckrichtung. Will man dem Benutzer einer Graphischen Oberfläche eine Auswahl über den Ausdruck geben, so bietet das Betriebsystem einen vorgefertigten Dialog an, den man für solche zwecke mit der Methode <b>java.awt.print.PrintJob.pageDialog(</b><i>PageFormat</i> page<b>)</b> aufrufen kann. Klickt der Anwender auf den >>OK<< Button, so liefert die Methode <b>java.awt.print.PrinterJob.printDialog()</b> den Rückgabewert <b>true</b>.<br><br>
    Ich denke das diese hier stehenden Informationen nur einen sehr anreißenden überblick der Druck-API geben können. Für nähere Informationen empfehle ich Dir das Buch "Goto Java 2 von Guido Grüger". Ab der Seite 526 wirst Du dort genaueres finden. Das Buch gibt es auch im Internet zum Kostenlosen Download: http://www.javabuch.de

    BYE GERRI

    Comment


    • #3
      vielen Dank für Deinen Tip, hat mir echt weitergeholfen!!!

      Gruß

      Steffe

      Comment

      Working...
      X