Announcement

Collapse
No announcement yet.

Datenübergabe beim Drucken

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

  • Datenübergabe beim Drucken

    Hallo zusammen!

    Ich bin gerade dabei, ein Programm für die Erstellung von Rechnungen zu schreiben, die dann gedruckt werden können. Ich bin jetzt soweit, dass alle notwendigen Daten aus diversen Eingabefeldern gelesen und in einem Vector gespeichert werden. Soweit, so gut.

    Jetzt zum Problem beim Drucken: Bis jetzt habe ich es geschafft, den Drucker anzusprechen und irgendwelche hart codierten Strings zu drucken. Allerdings soll der Vector ausgelesen und für den Druck aufgebreitet werden. Ich weiss aber nicht, wie bzw. wohin ich den Vector übergeben muss, damit ich aus dem Printable darauf zugreifen kann. Vielleicht hab ich auch irgendwas ganz falsch verstanden, für mich ist Drucken in Java absolutes Neuland.

    Puh, hoffe, das war halbwegs verständlich...

    Danke schonmal für die Hilfe



    Die folgenden Codeauszüge sind die Klassen, die ich bisher für das Drucken erstellt (bzw. geklaut ) habe:

    Code:
    public class PrintManager extends PrinterException
    {
    	private static PrintManager pm = null;
    	
    	private PrintManager(){
    	}
    	
    	public static PrintManager getInstance() {
    		if (pm == null) {
    			pm = new PrintManager();
    		}
    		return pm;
    	}
    
        PrinterJob pjob;
        public void print(Vector<Rechnung> rgVector) throws PrinterException{
        pjob = PrinterJob.getPrinterJob();
        if ( pjob.printDialog() == false )
          return;
        pjob.setPrintable(new PrintLayout());
        pjob.print();
        }
      
    }
    Code:
    class PrintLayout implements Printable
    {
    
      static Font font = new Font( "Times", Font.PLAIN, 13 );
    
      public int print( Graphics g, PageFormat pageFormat, int pageIndex )
      {
        if ( pageIndex >= 1 )
          return Printable.NO_SUCH_PAGE;
        g.setFont( font );
        g.drawString( "Testseite" + pageIndex, 100, 100 );
    
        return Printable.PAGE_EXISTS;
      }
    }

  • #2
    Du kannst in deiner Klasse PrintLayout, die ja offenbar den Text ausgibt, eine Methode "setDaten" implementieren und dort den Vector übergeben. Dann stehen sie für einen Ausdruck zur Verfügung. Ggf. den gleichen Weg im PrintManager nutzen

    Weitere Alternative
    Du kannst den Vector in einer Singelton-Klasse ablegen. Diese kannst du dann aus der Klasse PrintLayout aufrufen

    Weitere Alternative
    Implementiere in der Klasse PrintLayout einen Listener. Die Klasse deines Vectors registriert diesen Listener und informiert die Klasse bei Änderungen
    Zuletzt editiert von Christian Marquardt; 01.03.2010, 20:01.
    Christian

    Comment

    Working...
    X