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

Reply via email to