Drucken in JAVA. 12-Drucken



Ähnliche Dokumente
Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Drucken soll nur das Panel, nicht der ganze Rahmen gedruckt werden.

Drucken. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Objektorientierte Programmierung

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Probeklausur: Programmierung WS04/05

Programmieren in Java -Eingangstest-

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

Abstrakte Basisklassen

12 Abstrakte Klassen, finale Klassen und Interfaces

Dr. Monika Meiler. Inhalt

Einstieg in die Informatik mit Java

Abstrakte Basisklassen

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Selbsteinstufungstest Vorkurs Programmieren

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Programmierung Nachklausurtutorium

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Programmieren 2 Java Überblick

Übungsstunde 9. Einführung in die Programmierung I

Vorkurs Informatik WiSe 15/16

Ausnahmen (Exceptions)

Prüfung Softwareentwicklung II (IB)

Client-Server-Beziehungen

Beispielprüfung CuP WS 2015/2016

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Programmierkurs Java

Vorlesung Informatik II

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

Ersetzbarkeit und Verhalten

Vererbung Advanced. Ziele. Überschreiben von Methoden der Eltern Einführung Interface & Abstrakte Klasse Sichtbarkeit von Methoden bei Vererbung

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void

Ordnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Klausur: Java (Liste P)

Interface. So werden Interfaces gemacht

II.4.5 Generische Datentypen - 1 -

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

Handbuch für die Erweiterbarkeit

Kurzanleitung RMI-Beispiel: gettime Seite 1 / 7. RMI Projekt gettime 1

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Dateien. DVG Dateien 1

Theorie zu Übung 8 Implementierung in Java

Java Einführung Abstrakte Klassen und Interfaces

Einführung in die Programmierung

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Info B VL 8: Abstrakte Klassen & Interfaces

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

System.out.println("TEXT");

Remote Method Invocation

Die abstrakte Klasse Expression:

Übung 09: Vererbung und Dynamische Bindung

Prüfung Softwareentwicklung II (IB)

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Algorithmen und Datenstrukturen

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Praktische Softwaretechnologie Vorlesung 4

14. Java Objektorientierung

Java-Interfaces Wiederholung aus: Softwareentwicklung 2, H. Mössenböck

Ausnahmebehandlung in Java

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException

Programmieren in Java

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

JavaBeans Property-Editoren und Customizer

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Prüfung Softwareentwicklung I (IB)

Java-Schulung Grundlagen

Themen. Web Service - Clients. Kommunikation zw. Web Services

Grafik-Programmierung

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

II.4.4 Exceptions - 1 -

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Software Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Philipp Güttler Progwerkstatt Letzte Änderung: Enums, Interfaces, Generics und Threads

Übungsstunde 9. Einführung in die Programmierung

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface

Die Welt in unseren Programmen false -1.4E-12. false. Klassen

Klausur Software-Entwicklung September 00

1 Abstrakte Klassen, finale Klassen und Interfaces

Software Entwicklung 1

Transkript:

Drucken in JAVA 12-Drucken

Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss graphisch aufbereitet werden. Größe und Auflösung unterscheiden zwischen Bildschirm und verschiedenen Druckern stark: Bildschirm: 72-100 dpi Drucker: 200-1200 dpi Photosatz: >1200 dpi Es muss eine Anpassung vorgenommen werden Wegen der unterschiedlichen Papiergrößen sind nicht alle Formate möglich. Die Nutzung der Drucker ist sehr stark von der Hard- und Softwareumgebung abhängig. 12-Drucken 2

Drucken in JAVA 1. Das zu druckende Objekt muss das Interface Printable oder Pageable implementieren. 2. Es muss ein PrinterJob erzeugt werden. 3. Es müssen die notwendigen Einstellungen vorgenommen werden (Seitengröße, Orientierung...). 4. Der Ausdruck muss gestartet werden. 12-Drucken 3

Das Interface Printable Das Interface Printable beschreibt Ausgaben, die auf einer Seite gemacht werden. public int print(graphics graphics, PageFormat pageformat, int pageindex) throws PrinterException Diese Methode muss implementiert werden. graphics: Graphikkontext der auszugebenden Seite pageformat: beschreibt das Format der auszugebenden Seite pageindex: Nummer der auszugebenden Seite Die Methode print(...) erfüllt die gleiche Funktion, wie paintcomponent für die Ausgabe auf den Bildschirm. Man kann print genau so implementieren, wie paintcomponent In EMMA301Paint sollen alle graphischen Objekte druckbar sein. Erweiterung des Interfaces GraphicalObject und der absrakten Klasse AbstractGraphicalObject. 12-Drucken 4

public interface GraphicalObject extends Printable {... } public abstract class AbstractGraphicalObject implements GraphicalObject {... public int print(graphics g, PageFormat pageformat, int pageindex) { double scale = Math.min(pageFormat.getImageableWidth()/bounds2D.getWidth(), pageformat.getimageableheight()/bounds2d.getheight()); scale=scale>1.0?1.0:scale; ((Graphics2D)g).translate (pageformat.getimageablex(), pageformat.getimageabley()); ((Graphics2D)g).scale(scale, scale); paint((graphics2d)g); return Printable.PAGE_EXISTS; } } 12-Drucken 5

Die Klasse PrinterJob Die Klasse PrinterJob beschreibt einen vollständigen Druckvorgang und ermöglicht die Auswahl der Seitenformate, des Druckers u.s.w. Ein Objekt der Klasse PrinterJob muss mit der Methode public static PrinterJob getprinterjob() erzeugt werden, da die Klasse selbst abstrakt ist. public PageFormat pagedialog(pageformat page) öffnet einen Dialog zur Auswahl des Seitenformates public boolean printdialog() öffnet einen Dialog zur Auswahl des Druckers. Liefert true, wenn mit ok beendet wird sonst false. 12-Drucken 6

public void setprintable(printable painter, PageFormat format) setzt das zu druckende Printable-Objekt und das zu verwendende Seitenformat. public void setpageable(pageable document) throws NullPointerException setzt das zu druckende (mehrseitige Dokument) public void print() throws PrinterException startet die Ausgabe 12-Drucken 7

try { PrinterJob printerjob = PrinterJob.getPrinterJob(); activepageformat=printerjob.pagedialog(activepageformat); printerjob.setprintable( ((EMMA301PaintFrame)desktopPane.getSelectedFrame()). getpicture(),activepageformat); if (printerjob.printdialog()) printerjob.print(); } catch (PrinterException pe) {} 12-Drucken 8

Interface Pageable Das Interface Pageable dient der Ausgabe mehrseitiger Dokumente, wobei jede Seite ein anderes Seitenformat haben kann. public Printable getprintable(int pageindex) throws IndexOutOfBoundsException ist die wesentliche zu implementierende Methode. Sie liefert für die Seite Nummer pageindex die zu druckende Seite. 12-Drucken 9

Klasse Book Die Klasse Book ist eine reale Implementierung des Interfaces Pageable. Sie dient der Verwaltung mehrseitiger Dokumente. public void append(printable painter, PageFormat page) fügt eine Seite zu dem Buch hinzu 12-Drucken 10