sorry, here is the attachement .. herbert -- [EMAIL PROTECTED] http://www.perce.de
#LyX 1.1 Copyright 1995-1999 Matthias Ettrich and the LyX Team \lyxformat 2.15 \textclass scrartcl \begin_preamble \RequirePackage{boxedminipage} \RequirePackage{multicol} \RequirePackage{dsfont} \usepackage{listings} \usepackage{verbatim} %\newcommand{\listing}[1]{\footnotesize \verbatiminput{#1} \normalsize} %\newenvironment{rahmen}[1]{\begin{center}\begin{boxedminipage}[t]{#1}} {\end{boxedminipage}\end{center}} %\newenvironment{definition}[1]{\begin{rahmen}{16cm} \bf Definition #1: \rm} {\end{rahmen}} % %\newcounter{lst_counter} %\newcommand{\lst}[2]{\vspace{0.5cm}\noindent \refstepcounter{lst_counter} \bf Listing \arabic{chapter}-\arabic{lst_counter}\hspace{0.2cm}\rm #2\lstinputlisting{#1}\indent} %\newtheorem{definition}{Definition}[section] %\newcommand{\tabelle}[2]{\vspace{0.5cm}\noindent \refstepcounter{table} \bf\ Tabelle \arabic{chapter}-\arabic{table}\hspace{0.2cm}\rm #2\listing{#1}\indent} %\newcommand{\exor}{$\mbox{\stackrel{e}{\vee }$} %\newcommand{\lstzeile}[1]{\vspace{0.1cm}\noindent \tt \small #1\normalsize\rm\indent\vspace{0.1cm}} %\newcommand{\lstwort}[1]{\tt \small #1\normalsize\rm} %\newenvironment{zitat}{\begin{quotation}\small}{\normalsize\end{quotation}} \usepackage{rotating} \end_preamble \options htb \language german \inputencoding latin1 \fontscheme default \graphics default \paperfontsize 11 \spacing single \papersize a4paper \paperpackage a4 \use_geometry 1 \use_amsmath 0 \paperorientation portrait \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle default \layout LaTeX \backslash lstset{basicstyle= \backslash scriptsize,keywordstyle= \backslash bfseries,nonkeywordstyle={},blankstring=true,labelstyle= \backslash tiny,labelstep=1,indent=2em,language=Java} \layout Title Grafik unter Java \layout Author Herbert Voß \layout Standard \latex latex \backslash footnotetext{ \latex default Herbert Voss, Wasgenstrasse 21, D-14129 Berlin \layout Standard [EMAIL PROTECTED] \layout Standard http://www.perce.de/voss \latex latex } \layout Standard \begin_inset LatexCommand \tableofcontents{} \end_inset \layout Section Einführung \layout Standard Mit dem \series bold A \series default bstract \series bold W \series default indow \series bold T \series default oolkit \begin_inset LatexCommand \index{Abstract Window Toolkit} \end_inset \begin_float footnote \layout Standard Es finden sich auch andere Bezeichnungen, z.B. Application Window Tool. \end_float steht eine riesige Sammlung an möglichen Moduln zur grafischen Darstellung unter X-Windows \begin_inset LatexCommand \index{X-Windows} \end_inset zur Verfügung. Eine ausführliche Beschreibung der Klassen und Methoden erhält man über: \emph on \begin_inset LatexCommand \url{http://java.sun.com/products/jdk/1.1/} \end_inset \emph default für das JDK der Versionen 1.0 bis 1.1.8 bzw. \emph on \begin_inset LatexCommand \url{http://java.sun.com/jdk/} \end_inset \emph default für die Java-2 Platformen (Versionen ab 1.2). Auf der dortigen SUN \begin_inset LatexCommand \index{SUN} \end_inset -Homepage steht auch das frei verfügbare JDK \begin_float footnote \layout Standard JDK: Java Development Kit (auch Java Developers Kit) \end_float \begin_inset LatexCommand \index{JDK} \end_inset 1.1.8 bzw. die zur Zeit neueste Version 1.3 \begin_float footnote \layout Standard auch als Java 2 bezeichnet. \end_float für die unterschiedlichsten Systemplattformen kostenlos zum Download bereit, wobei angepasste Linux-Versionen unter \begin_inset LatexCommand \url{http://www.blackdown.org} \end_inset zu bekommen sind \begin_float footnote \layout Standard SUN bietet im Prinzip nur Solaris und Windows-Versionen an. \end_float . Eine Beschreibung der vielfach angewendeteten Swing-Connection findet man unter anderem auf \begin_inset LatexCommand \url{http://java.sun.com/products/jfc/tsc/index.html} \end_inset oder in [Deitel]. Diese erfordert jedoch mindestens ein JDK 2. Bei den meisten der gängigen Linux-Distributionen oder den beiliegenden Java-CD's diverser Computerbücher und -zeitschriften ist ein JDK ohnehin standardmäßig dabei, allerdings selten die neueste Version. \layout Standard In diesem Artikel soll es primär nicht um die Anwendung des AWT \begin_inset LatexCommand \index{AWT} \end_inset gehen, sondern um eine entsprechende Erweiterung. Dabei soll die Programmiersprache Java \begin_inset LatexCommand \index{Java} \end_inset nicht im Vordergrund stehen, sondern einzelne Algorithmen, wie z.B. die Projektion einer 3D-Ebene \begin_inset LatexCommand \index{3D-Ebene} \end_inset auf eine 2D-Zeichenfläche \begin_inset LatexCommand \index{2D-Zeichenfläche} \end_inset . Letztlich lassen sich aber alle hier angegebenen Algorithmen auf alle anderen Sprachen übertragen. \layout Section Eine einfache Anwendung \layout Standard Eine einfache Klasse, die das AWT-package \begin_inset LatexCommand \index{AWT-package} \end_inset anwendet, lässt sich wie Algorithmus \begin_inset LatexCommand \ref{awt0} \end_inset zeigt, sehr einfach realisieren. Noch einfacher ist ein Dialogfenster mit Java-Swing \begin_inset LatexCommand \index{Swing} \end_inset (Abb. \begin_inset LatexCommand \ref{awt0} \end_inset b), denn der Algorithmus besteht faktisch aus einer einzigen Programmzeile (Alg. \begin_inset LatexCommand \ref{p-awt0x} \end_inset ). \begin_float fig \layout Standard \align center \begin_inset Figure size 198 163 file awt0.ps subcaption awt0.class width 1 7.00 flags 9 subfigure \end_inset \begin_inset Figure size 142 60 file awt0x.ps subcaption awt0x - JavaSwing flags 9 subfigure \end_inset \layout Caption \begin_inset LatexCommand \label{awt0} \end_inset Eine erste Anwendung \end_float Das Ergebnis wäre ein leeres Grafikfenster \begin_inset LatexCommand \index{Grafikfenster} \end_inset mit dem angegebenen Titel \begin_inset Quotes eld \end_inset awt0 - Test \begin_inset Quotes erd \end_inset (vgl. Abb. \begin_inset LatexCommand \ref{p-awt0} \end_inset a). Exemplarisch sollen kurz die einzelnen Teile des Alogorithmus erklärt werden. Mit \family typewriter \size small import \begin_inset LatexCommand \index{import} \end_inset \family default \size default werden die entsprechenden Java-Klassen \begin_inset LatexCommand \index{Java-Klassen} \end_inset importiert, hier eben alle notwendigen AWT-Klassen \begin_inset LatexCommand \index{AWT-Klassen} \end_inset , wobei der Java-Compiler automatisch nur die Klassen auswählt, die benötigt werden. Zeile 2 definiert den Namen der Klasse \family typewriter \size small awt0 \family default \size default sowie die Festlegung, dass mit \family typewriter \size small awt0 \family default \size default die Klasse \family typewriter \size small Frame \begin_inset LatexCommand \index{Frame} \end_inset \family default \size default (Klasse des AWT \begin_inset LatexCommand \index{AWT} \end_inset ) \begin_float footnote \layout Standard vgl. Tab. \begin_inset LatexCommand \ref{awt-klasse} \end_inset \end_float erweitert werden soll, d.h. \family typewriter \size small awt0 \family default \size default erbt alle Eigenschaften von \family typewriter \size small Frame \family default \size default , welche wiederum eine Erweiterung der Klasse \family typewriter \size small Window \begin_inset LatexCommand \index{Window} \end_inset \begin_float footnote \layout Standard \family typewriter \size footnotesize Window \family default \size default stellt lediglich das Fenster zur Verfügung, ohne Rahmen und Menüleiste und ist selbst eine Erweiterung der Klasse \family typewriter \size footnotesize Container \family default \size default (siehe Abb. \begin_inset LatexCommand \ref{awt-klasse} \end_inset ) \end_float ist. Den Aufbau der AWT-Klassenhierarchie \begin_inset LatexCommand \index{AWT-Klassenhierarchie} \end_inset zeigt Tab. \begin_inset LatexCommand \ref{awt-klasse} \end_inset . \begin_float tab \layout Standard \align center \LyXTable multicol5 5 5 0 0 -1 -1 -1 -1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 8 1 0 "" "" 8 1 0 "" "" 8 1 1 "" "" 8 0 1 "" "" 8 0 1 "" "" 1 8 1 1 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 1 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 1 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" Object \begin_inset LatexCommand \index{Object} \end_inset \newline Component \begin_inset LatexCommand \index{Component} \end_inset \newline Container \begin_inset LatexCommand \index{Container} \end_inset \newline Button \begin_inset LatexCommand \index{Button} \end_inset \newline Label \begin_inset LatexCommand \index{Label} \end_inset \newline Scrollbar \begin_inset LatexCommand \index{Scrollbar} \end_inset \newline Window \begin_inset LatexCommand \index{Window} \end_inset \newline Panel \begin_inset LatexCommand \index{Panel} \end_inset \newline \newline \newline \newline Frame \begin_inset LatexCommand \index{Frame} \end_inset \newline Applet \begin_inset LatexCommand \index{Applet} \end_inset \newline \newline \newline \layout Caption \begin_inset LatexCommand \label{awt-klasse} \end_inset AWT-Klassenhierarchie \end_float \layout Standard Jede Java-Application \begin_inset LatexCommand \index{Java-Application} \end_inset \series bold muss \series default zwingend eine Methode \family typewriter \size small main \family default \size default (Zeilen 3-10) enthalten, da der Algorithmus sonst nicht gestartet werden kann \begin_float footnote \layout Standard Bei Applets ist dies die Methode \family typewriter init() \family default , vergleiche auch Kap. \begin_inset LatexCommand \ref{Applet} \end_inset \end_float : \layout LaTeX \backslash begin{tabbing} \backslash hspace{3cm} \backslash = \backslash \backslash \layout Standard \family typewriter \size small main: \begin_inset LatexCommand \index{main} \end_inset \family default \size default \latex latex \backslash > \latex default ist die Startmethode für jede Java- Applikation; \latex latex \backslash \backslash \layout Standard \family typewriter \size small public: \begin_inset LatexCommand \index{public} \end_inset \family default \size default \latex latex \backslash > \family typewriter \size small \latex default main \family default \size default muss öffentlich sein,d.h. außerhalb des Packages verfügbar; \latex latex \backslash \backslash \layout Standard \family typewriter \size small static: \begin_inset LatexCommand \index{static} \end_inset \family default \size default \latex latex \backslash > \family typewriter \size small \latex default main \family default \size default ist eine Klassenmethode (und damit der aufrufenden Programm-Klasse \latex latex \backslash \backslash \backslash > \family typewriter \size small \latex default public class programm \family default \size default verfügbar - es wird keine Instanz der Programmklasse \latex latex \backslash \backslash \backslash > \latex default erzeugt); \latex latex \backslash \backslash \layout Standard \family typewriter \size small void: \begin_inset LatexCommand \index{void} \end_inset \family default \size default \latex latex \backslash > \latex default main hat keinen Rückgabewert; \latex latex \backslash \backslash \layout Standard \family typewriter \size small String \protected_separator args[]; \family default \size default \latex latex \backslash > \latex default Array der Klasse \family typewriter \size small String \family default \size default als Eingabeparameterfeld (statt \family typewriter \size small args \family default \size default darf ein beliebig \latex latex \backslash \backslash \backslash > \latex default anderer zulässiger Bezeichner verwendet werden). \layout LaTeX \backslash end{tabbing} \layout Standard Die Methode \family typewriter \size small main \begin_inset LatexCommand \index{main} \end_inset \family default \size default definiert das neue Objekt \family typewriter \size small app \family default \size default vom Typ \family typewriter \size small awt0 \family default \size default (Zeile 5), welches durch die Methode \family typewriter \size small awt0 \family default \size default (Zeilen 11-14) realisiert wird. Mit den Zeilen 6 und 7 werden zum einen die Fenstergröße festgelegt und zum anderen veranlasst, dass das Fenster angezeigt wird. Wird \family typewriter \size small app.setVisible \begin_inset LatexCommand \index{setVisible} \end_inset (false) \family default \size default aufgerufen, so wird nichts angezeigt. Wird dieser Methodenaufruf ganz entfernt, wird das Programm sofort wieder beendet, denn es gibt für den Algorithmus nichts weiter zu tun. Die Methode \family typewriter \size small addWindowListener \begin_inset LatexCommand \index{addWindowListener} \end_inset () \family default \size default (Zeilen 8-9) überwacht Ereignisse, die im Zusammenhang mit dem Fenster \family typewriter \size small app \family default \size default stehen und verlässt den Algorithmus, falls das Fenster geschlossen wurde. Die \family typewriter \size small System.out.println \family default \size default \begin_inset LatexCommand \index{System.out.println} \end_inset -Aufrufe haben hier nur den Sinn, um auf der x-Konsole den Ablauf des Algorithmu s besser verfolgen zu können: \layout Standard \family typewriter \size small voss@maria:~/Informatik/Java/AWT-Einfuehrung > java awt0 \layout Standard \family typewriter \size small awt0::main() \layout Standard \family typewriter \size small awt0::awt0(String frameTitle) \layout Standard \family typewriter \size small awt0::WindowEvent \layout Standard \family typewriter \size small voss@maria:~/Informatik/Java/AWT-Einfuehrung > \layout Standard Nach dem Start der Application \begin_inset LatexCommand \index{Application} \end_inset \family typewriter \size small awt0 \family default \size default wird erwartungsgemäß zuerst die Methode \family typewriter \size small main() \family default \size default ausgeführt, gefolgt von der Instanzierung \begin_inset LatexCommand \index{Instanzierung} \end_inset des Objects \family typewriter \size small awt0(String frameTitle) \family default \size default . Erst wenn jetzt das Fenster geschlossen wird gibt es eine entsprechende Meldung. \family typewriter \size small awt0.class \family default \size default hat bislang nichts weiter als ein leeres Fenster erzeugt. Erst mit den kommenden Klassen wird eine einfache grafische Anwendung, das Zeichnen einer Normalparabel \begin_inset LatexCommand \index{Normalparabel} \end_inset , durchgeführt (vgl. Abb. \begin_inset LatexCommand \ref{awt2} \end_inset a). Dazu werden weitere Methoden definiert: \layout Itemize \family typewriter \size small void MeineAnwendung(Graphics g) \family default \size default : Berechnet bzw. bestimmt die zu setzenden Bildpunkte, indem die Methode \family typewriter \size small putPixel() \family default \size default aufgerufen wird; \layout Itemize \family typewriter \size small void setzePixel \begin_inset LatexCommand \index{setzePixel} \end_inset (int x,int y,graphics g) \family default \size default : Setzt für die Bildschirmkoordinaten \begin_inset Formula \( P(x;y) \) \end_inset den Bildpunkt in der aktuellen Farbe, wobei dies über die Methode \family typewriter \size small drawLine \begin_inset LatexCommand \index{drawLine} \end_inset () \family default \size default erfolgen muss, da Java keine eigene Methode zum Setzen von Pixeln kennt; \layout Itemize \family typewriter \size small public void paint \begin_inset LatexCommand \index{paint} \end_inset (Graphics g) \family default \size default : Diese Methode wird vom System automatisch aufgerufen und muss daher zwingend vorhanden sein, wenn eine graphische Ausagbe erfolgen soll. Übergeben wird dabei das ebenfalls automatisch erzeugte Grafikobject \family typewriter \size small g \family default \size default . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 141 141 file awt2.ps subcaption Ausgabe bei systemspezifischer Ausrichtung width 1 5.00 flags 9 subfigure \end_inset \begin_inset Figure size 141 141 file awt2a.ps subcaption Ausgabe mit mathematischer Ausrichtung width 1 5.00 flags 9 subfigure \end_inset \begin_inset Figure size 141 143 file awt2b.ps subcaption Berücksichtigung der Randleiste width 1 5.00 flags 9 subfigure \end_inset \layout Caption \begin_inset LatexCommand \label{awt2} \end_inset Ausgabe des Graphen einer Parabel \end_float \layout Subsection void MeineAnwendung(Graphics g) \layout Standard Ein Bildpunkt \begin_inset LatexCommand \index{Bildpunkt} \end_inset entspricht in x-Richtung der mathematischen Einheit, in y-Richtung jedoch nur \begin_inset Formula \( \frac{1}{100} \) \end_inset der mathematischen Einheit, so dass es sich um die Normalparabel \begin_inset Formula \( y=x^{2} \) \end_inset handelt, wenn dies entsprechend berücksichtigt wird. \layout Subsection void setzePixel \begin_inset LatexCommand \index{setzePixel} \end_inset (int x,int y,Graphics g) \layout Standard Wie bereits oben erwähnt kennt die Java Graphics-Klasse keine eigene Methode für das Setzen eines Pixels, so dass dies mithilfe der Methode \family typewriter \size small drawLine() \family default \size default erfolgen muss. \layout Subsection public void paint \begin_inset LatexCommand \index{paint} \end_inset (Graphics g) \layout Standard Die Methode \family typewriter \size small paint(Graphics g) \family default \size default \emph on \emph default braucht vom Anwender nicht aufgerufen zu werden, da dies systemspezifisch automatisch erfolgt. Damit ist es dem System möglich, Fensterinhalte immer wieder neu aufzubauen, wenn man unter X-Windows das aktuelle Fenster verläßt oder sogar auf eine Textconsole umschaltet. Auf der x-Konsole kann dies durch entsprechende \family typewriter \size small System.out.println() \family default \size default - Anweisungen verfolgt werden (Zeile 19). Zeile 20 legt durch \family typewriter \size small translate \begin_inset LatexCommand \index{translate} \end_inset (200,0) \family default \size default fest, dass der Koordinatenursprung nicht bei \begin_inset Formula \( P(0;0) \) \end_inset liegt, sondern bei \begin_inset Formula \( P_{Neu}(200;0) \) \end_inset . Hierbei läßt Java ohne weiteres negative Koordinaten zu. Kann also ein Punkt nicht gezeichnet werden, führt dies zu keiner Fehlermeldung ! Auch die \family typewriter \size small translate() \family default \size default -Methode kann den Koordinatenursprung \begin_inset LatexCommand \index{Koordinatenursprung} \end_inset beliebig setzen, also auch ausserhalb des Bildschirms. Mit Zeile 21 wird der Fensterhintergrund festgelegt und mit Zeile 22 die Anwendung gestartet. \layout Section \begin_inset LatexCommand \label{Applet} \end_inset Applikation \begin_inset LatexCommand \index{Applikation} \end_inset und/oder Applet \begin_inset LatexCommand \index{Applet} \end_inset \layout Standard Der Unterschied zwischen diesen beiden Arten der Javaprogrammierung ist minimal, denn beides sind Javaprogramme und können denselben Algorithmus als Grundlage haben. Unterschiedlich ist lediglich die Umgebung in der sie ablaufen, Applets laufen nur in einer Browser \begin_inset LatexCommand \index{Browser} \end_inset -Umgebung bzw. Appletviewer \begin_inset LatexCommand \index{Appletviewer} \end_inset -Umgebung und Applikationen in einer \begin_inset Quotes eld \end_inset normalen \begin_inset Quotes erd \end_inset Umgebung, d.h. Textkonsole bzw. Grafikkonsole, wenn grafische Operationen erfolgen. Grundsätzlich ist es auch kein Problem eine Java-Klasse so zu programmieren, dass diese sowohl als Applet als auch Applikation laufen kann. Einschränkungen gibt es nur hinsichtlich der MEthoden, die aus Sicherheitsgründ en in einem Applet nicht erlaubt sind. Der \family typewriter \size small main \family default \size default -Methode entspricht die \family typewriter \size small init \family default \size default -Methode beim Applet (Alg. \begin_inset LatexCommand \ref{p-awt0A} \end_inset ) . Die entsprechende Ausgabe im Browser zeigt Abb. \begin_inset LatexCommand \ref{awt0A.ps} \end_inset , die zugehörige einfache html-Datei zeigt Alg. \begin_inset LatexCommand \ref{awtoA.html} \end_inset . \layout Standard \begin_float fig \layout Standard \align center \begin_inset Figure size 200 163 file applet0.ps flags 9 \end_inset \layout Caption \begin_inset LatexCommand \label{awt0A.ps} \end_inset Applet awt0.html \end_float \layout Section Anpassung der Darstellung \layout Subsection \begin_inset LatexCommand \label{3.1} \end_inset Bildschirmauflösungen \begin_inset LatexCommand \index{Bildschirmauflösungen} \end_inset \layout Standard Bei Linien, die nicht vertikal oder horizontal verlaufen, ist in der Regel mit Verzerrungen \begin_inset LatexCommand \index{Verzerrungen} \end_inset zu rechnen, denn das Bildschirmverhältnis von xPixel zu yPixel ist nicht notwendigerweise immer gleich 1. Dieses von Pascal bekannte Verhältnis \series bold xy-Ratio \begin_inset LatexCommand \index{xy-Ratio} \end_inset \series default beträgt für eine typische 1280*1024-Auflösung \begin_inset Formula \( \frac{1280}{1024}=1,25 \) \end_inset , während ein 17 \begin_inset Quotes erd \end_inset -Bildschirm für das sogenannte \emph on Display Area \begin_inset LatexCommand \index{Display Area} \end_inset \emph default ein typisches Längenverhältnis von \begin_inset Formula \( \frac{30cm}{22,5cm}=1,\overline{3} \) \end_inset aufweist. Somit \series bold muss \series default es bei bestimmten Auflösungen zwangsweise zu Verzerrungen kommen, denn wie die folgende Tab. \begin_inset LatexCommand \ref{xy-ratio} \end_inset zeigt, haben nicht alle Bildschirmauflösungen das gleiche Pixelverhältnis \begin_inset LatexCommand \index{Pixelverhältnis} \end_inset . Immer dann, wenn die Grafik ausgedruckt werden muss, erledigt sich dieses Problem von selbst, denn Drucker verfügen fast ausnahmslos über ein xy-Verhältn is von 1:1, z.B. ein Laserdrucker \begin_inset LatexCommand \index{Laserdrucker} \end_inset von typisch 300*300 bzw. 600*600 Punkten. \begin_float tab \layout Standard \align center \LyXTable multicol5 8 3 0 0 -1 -1 -1 -1 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 8 1 0 "" "" 8 1 0 "" "" 8 1 1 "" "" 1 8 1 0 0 0 0 "" "" 2 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 1 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" 0 8 1 0 0 0 0 "" "" Auflösung \newline Verhältnis \newline Breite \newline Höhe \newline \newline 640 \newline 480 \newline \begin_inset Formula \( 1,\overline{3} \) \end_inset \newline 800 \newline 600 \newline \begin_inset Formula \( 1,\overline{3} \) \end_inset \newline 1024 \newline 768 \newline \begin_inset Formula \( 1,\overline{3} \) \end_inset \newline 1152 \newline 870 \newline \begin_inset Formula \( 1,32 \) \end_inset \newline 1280 \newline 1024 \newline \begin_inset Formula \( 1,25 \) \end_inset \newline 1600 \newline 1200 \newline \begin_inset Formula \( 1,\overline{3} \) \end_inset \layout Caption \begin_inset LatexCommand \label{xy-ratio} \end_inset Bildschirmverhältnisse \begin_inset LatexCommand \index{Bildschirmverhältnisse} \end_inset (Auflösung in Pixeln) \end_float \layout Subsection \begin_inset LatexCommand \label{Kap3.1} \end_inset Die Bildschirmausrichtung \begin_inset LatexCommand \index{Bildschirmausrichtung} \end_inset \layout Standard Aus der Abb. \begin_inset LatexCommand \ref{awt2} \end_inset a ist unschwer zu erkennen, dass der Koorinatenursprung \begin_inset LatexCommand \index{Koorinatenursprung} \end_inset des Bildschirms in der oberen linken Ecke liegt und durch \family typewriter \size small translate \begin_inset LatexCommand \index{translate} \end_inset () \family default \size default nur verschoben, aber nicht gespiegelt werden kann, wie dies aber notwendig wäre, um den Koordinatenursprung allgemein in die l \layout Bibliography \bibitem {1} Geary, D.M. und McClellan, A.L.: Graphic Java - Das AWT beherrschen,Verlag Heinz Heise, Hannover 1997 \the_end