Graphikprogrammierung. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Größe: px
Ab Seite anzeigen:

Download "Graphikprogrammierung. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1"

Transkript

1 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

2 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 2 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

3 Grundlagen der Graphikausgabe Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 3 Components zeichnen sich mit Methode public void paint(graphics g) wobei der Graphics-Parameter die Zeichenfläche für die Component darstellt Anwenderprogramm darf paint nicht aufrufen, sondern Aufruf der paint-methoden erfolgt im AWT-Loop Anwenderprogramm kann durch Aufruf von public void repaint() public void repaint(int x, int y, int width, int height) das Neuzeichnen der Komponente (eines Bereichs der Komponente) fordern

4 AWT-Loop Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 4 Anwenderprogramm und AWT-Loop laufen in unterschiedlichen Threads Anwenderprogramm führt Änderungen in den Daten durch, die Änderungen in der GUI bewirken sollen ruft repaint der betroffenen Component auf AWT-Loop durch repaint weiss AWT, dass Component neu gezeichnet werden muss AWT-Loop arbeitet die Zeichenanforderungen ab bewirkt Neuzeichnen der Components

5 AWT-Loop Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 5 Neuzeichnen: AWT-Loop ruft Methode update bei der Component auf update ruft paint auf public void update(graphics g) { paint(g); paint führt Zeichnen der Component durch public void paint(graphics g) {... update wird verwendet, um in Painting grundsätzlich einzugreifen (z.b.: DoubleBuffering) paint wird überschrieben, um bei Components spezielle Darstellungen zu realisieren

6 AWT-Loop Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 6 Anwenderprogramm Component AWT Event Loop Changes() repaint register update update(g) paint(g) Thread Beachte: update und paint laufen im AWT-Thread lang laufende paint-methoden blockieren AWT-Thread

7 Graphikkontext Graphics Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 7 In Methode paint wird als Parameter ein Graphics-Objekt übergeben public void paint(graphics g) Stellt virtuelle Zeichenfläche für die Component dar (genannt Graphikkontext) hat Größe der Component mit 0/0-Koordinate im linken, oberen Eck der Component 0,0 getwidth()-1, getheight()-1 ermöglicht Zeichnen von Linien, Figuren, Text und Bildern, hat eine Reihe von Zuständen, die die Grafikausgabe beeinflussen - Color: gegenwärtige Zeichenfarbe - Font: gegenwärtige Schriftart für Text - Clip: Zeichenoperationen wirken sich nur innerhalb des Clip aus) - XORMode: logische Pixeloperation (XOR oder Paint)

8 Zeichenoperationen der Klasse Graphics Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 8 clearrect(int x,int y,int w, int h) copyarea(x,y, w,h, dx, dy) draw3drect(x,y,w,h, boolean raised) drawarc(x,y,w,h, int startangle, int arcangle) drawline(x1,y1,x2,y2) drawoval(x,y,w,h) drawpolygon(x[], y[], int npoints) drawpolyline(x[], y[], int npoints) drawrect(x,y,w,h) drawroundrect(x,y,w,h, int arcwidth, int archeight) drawstring(string str, x,y) fill3drect(x,y,w,h, boolean raised) fillarc(...) filloval(...) fillpolygon(...) fillroundrect(...) drawimage(image img, x,y, ImageObserver obs)...

9 Weitere Methoden der Klasse Graphics Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 9 translate(int x, int y) // Verschieben des Koordinatenursprungs setpaintmode() // normalen Zeichenmodus setzen (default) setxormode(color c1) // XOR-Modus momentane Farbe xor c1 setfont(font f) // Schriftart setzen setcolor(color c) // Zeichenfarbe setzten setclip(x,y,w,h) // setzt neues Clip (Pixel nur innerhalb betroffen) FontMetrics getfontmetrics() // holt Metrik-informationen zur Font // zb. wieviele Pixel breit/hoch ist "1. Object" Font getfont() // aktuelle Schriftart Color getcolor() Rectangle getclipbounds() // Rechteckigen Clip-Bereich holen; Auch wenn... eine Linie über diesen hinausgeht, wird nur innerhalb gezeichnet.

10 Beispiel Grafikausgabe Vorgehen: Klasse von Canvas ableiten paint-methode überschreiben Canvas-Objekt in Frame einfügen import java.awt.*; import java.awt.event.*; public class PaintTestCanvas extends Canvas { public void paint(graphics g) { super.paint(g); // Löschen for (int x = 0; x <= getwidth()-1; x++) { g.setcolor(new Color(0, (int)(255.0/getwidth()*x), (int)(255.0/getwidth()*x))); g.drawline(x, 0, getwidth()-x, getheight()-1); public static void main(string[] args) { Frame frame = new Frame("Paint test"); frame.add(new PaintTestCanvas()); frame.setsize(new Dimension(200, 200)); frame.setvisible(true); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 10

11 Animation Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 11 Für bewegte Bilder braucht man Thread class MovingObject implements Runnable {... public void run() { while (true) { try { Thread.sleep(delayTime); catch (InterruptedException e) { move(); repaint(); Verzögerung Bewegung Neu zeichnen Verwendung von repaint mit Bereichsangabe Optimierte Ausgabe, weil nicht alles gezeichnet werden muss... move(); repaint(minx, miny, width, height);... Bereich der neu zu zeichnen ist

12 Beispiel: MovingImage import java.awt.*; import java.awt.event.*; class MovingImageCanvas extends Canvas implements Runnable { private Point point = new Point(0, 50); private int speed; private Image img; public MovingImageCanvas(int speed, String imgname) { this.speed = speed; img = gettoolkit().getimage(imgname); private void move() { point.x = point.x + speed; public void paint(graphics g) { g.drawimage(img, point.x % this.getwidth(), point.y, this); public void run() { while (true) { try { Thread.sleep(10); catch (InterruptedException e) { move(); repaint(point.x % this.getwidth()-speed, point.y, img.getwidth(this), img.getheight(this)); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 12

13 Double-Buffering Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 13 Durch Löschen des Bildschirms und Neuzeichnen kommt es zu flackern Abhilfe durch Double-Buffering zuerst Zeichnen in ein Image dann Zeichnen des neuen Image auf den Bildschirm Realisiert in update(graphics g) public void update(graphics g) { if (dbimage == null) { dbimage = createimage(getwidth(), getheight()); dbgraphics = dbimage.getgraphics(); dbgraphics.setcolor(getbackground()); dbgraphics.fillrect(0, 0, getwidth(), getheight()); dbgraphics.setcolor(getforeground()); paint(dbgraphics); g.drawimage(dbimage,0,0,this); Image erzeugen Graphics-Objekt für Image erzeugen Hintergrund im Image füllen Zeichnen in Image Image auf Bildschirm zeichnen

14 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 14 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

15 Painting in Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 15 Painting bei Swing in AWT-Painting eingebettet: Aufruf von public void update(graphics g) und public void paint(graphics g) Aber: paint bei JComponent folgend implementiert public void paint(graphics g) {... paintcomponent(co); paintborder(co);... paintchildren(co);... Zeichnen der Komponente Zeichnen eines Rands Zeichnen der Kinder Üblicherweise wird nur paintcomonent(graphics g) überschrieben public class MyJComponent protected void paintcomponent (Graphics g) { // my custom painting...

16 Painting in Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 16 Features von Painting in Swing: Double-Buffering bereits implementiert und bei jeder JComponent einschaltbar public void setdoublebuffered(boolean db) Verschiedene Borders void setborder(border b) TooltipText void settooltiptext(string text) Deckender oder transparenter Hintergrund void setopaque(boolean opaque)

17 Beispiel Painting in Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 17 class GridJComponent extends JComponent { public GridJComponent() { setlayout(new FlowLayout()); JButton b1 = new JButton("Button 1"); JButton b2 = new JButton("Button 2"); setborder(borderfactory.createloweredbevelborder()); add(b1); add(b2); protected void paintcomponent(graphics g) { int width = getsize().width; int height = getsize().height; g.setcolor(color.gray); for (int i = 0; i < width; i += 10) { g.drawline(i, 0, i, height); for (int i = 0; i < height; i += 10) { g.drawline(0, i, width, i);

18 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 18 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

19 Java 2D-API Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 19 Ab Java 1.2 leistungsfähige Bibliothek von Zeichenoperationen Komplexe Figuren (Shapes) Einstellungen fürs Zeichnen Strich Füllfarben und Muster Transformationen Clipping Transparenz und Kombination Wiedergabehinweise zur Abstimmung Zeichenqualität versus Laufzeit stroke transform clip fill compose

20 Shapes Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 20 Java 2D stellt eine Reihe von Shapes zur Verfügung Diese existieren jeweils in Float- und Double-Version (folgend wird nur Float angegeben; jeweils der wichtigste Konstruktor) Rechtecke Rectangle2D.Float(float x, float y, float w, float h) RoundRectangle2D.Float(float x, float y, float w, float h, float arcw, float arch) Ellipsen Ellipse2D.Float(float x, float y, float w, float h) Linien Line2D.Float(float x1, float y1, float x2, float y2) Kurven QuadCurve2D.Float(float x1, float y1, float ctrlx, float ctrly, float x2, float y2) CubicCurve2D.Float(float x1, float y1, float ctrlx1, float ctrly1, float ctrlx2, float ctrly2, float x2, float y2 Bogen Arc2D.Float(float x, float y, float w, float h, float start, float extent, int type)

21 Verwendung von Graphics2D [1/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 21 Verwendung von Graphics2D statt Graphics protected void paintcomponent(graphics g) { Graphics2D g2d = (Graphics2D)g; Wiedergabehinweise (RenderingHints) Typecast notwendig Kompromisse zwischen Geschwindigkeit und Zeichenqualität g2d.setrenderinghint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); g2d.setrenderinghint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g2d.setrenderinghint( RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDERING_SPEED);

22 Verwendung von Graphics2D [2/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 22 Striche: Interface Stroke Klasse BasicStroke Stärke, Endung (CAP), Ecken (JOIN) Stroke stroke = new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL); g2d.setstroke(stroke); CAP: Form von Linienende JOIN: Form von Ecken Strichmuster (DASH) float[] dashpattern = new float[] { 10, 10, 30, 10 Stroke stroke = new BasicStroke(3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, dashpattern); g2d.setstroke(stroke);

23 Verwendung von Graphics2D [3/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 23 Füllung Farbe g2d.setpaint(color.red); Gradient von 2 Farben entlang einer Linie Paint paint = paint = new GradientPaint(0, 0, Color.red, (float) getwidth(), (float) getheight(), Color.blue); g2d.setpaint(paint); Textur mit Image bufferedimage = ImageIO.read(new File("blue-ball.gif")); Rectangle2D anchor = new Rectangle2D.Double(0, 0, 2 * bufferedimage.getwidth(), 2 * bufferedimage.getheight()); paint = new TexturePaint(bufferedImage, anchor); g2d.setpaint(paint); Anchor-Rechteck

24 Verwendung von Graphics2D [4/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 24 Clipping bei Graphics2D setclip(shape) Setzt Clipping-Region vom System neu!! clip(shape) kombiniert aktuelle Clipping- Region mit Shape Achtung: Überschreibt Clipping- Region des Systems! Graphics2D g2 = (Graphics2D)g; Shape oldclip = g2.getclip(); // Speichern aktueller Clip Shape clipshape = new Elipse2D.Loat(20, 20, 200, 200); g2.clip(clipshape); // Kombinieren mit Ellipse // Zeichnen g2.setclip(oldclip); // Rücksetzen alter Clip

25 Verwendung von Graphics2D [5/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 25 Transformationen bei Graphics2D Skalieren scale g2.scale(2.0, 1.5); g2.draw(square); Verschieben translate g2.translate(20.0, 15.0); g2.draw(square); Rotieren rotate g2.rotate(math.pi / 4.0); // 45 g2.draw(square); Biegen - shear g2.shear(0.3, 0.0); g2.draw(square);

26 Verwendung von Graphics2D [6/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 26 Affine Transformation Alle Transformationen werden als AffineTransforms dargestellt AffineTransform t = new AffineTransform(); AffineTransforms können gesetzt t.settoscale(2.0, 1.5); t.settorotation(math.pi / 4.0) t.settotranslation(50, 50); t.settoshear(0.3, 0.0); oder kombiniert werden t.scale(2.0, 1.5); t.rotate(math.pi / 4.0); t.translate(50, 50); t.shear(0.3, 0.0); Beispiel Vorgehen: AffineTransform savedtrfm = g2d.gettransform(); g2d.translate(x, y); double alpha = ; g2d.rotate(alpha); g2d.draw(shape); g2d.settransform(savedtrfm); Sichern der aktuellen Transformation Translation auf x/y Rotation um Winkel alpha Zeichnen der Figur Zurücksetzen der Transformation

27 Verwendung von Graphics2D [7/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 27 Transparenz und Kombination Alpha-Kanal bei Color beschreibt Transparenz Transparenz 50% Color transpyellow = new Color(0.7f, 0.7f, 0.0f, 0.5f); Komposition von Bildern mit AlphaComposite Regel int rule = AlphaComposite.SRC_OVER; Alpha-Wert float alpha = 0.5; Komposition g2.setcomposite(alphacomposite.getinstance(rule, alpha); g2.setpaint(color.blue); g2.fill(rectangle);

28 Verwendung von Graphics2D [8/8] Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 28 Porter-Duff-Kompositionsregeln SRC_OVER Quelle wird mit Ziel gemischt und überschreibt leere Pixel DST_OVER Quelle hat keinen Einfluss auf Ziel und überschreibt leere Pixel SRC Quelle überschreibt Ziel und leere Pixel CLEAR Quelle löscht Ziel SRC_IN Quelle überschreibt Ziel SRC_OUT... Quelle löscht Ziel und überschreibt leere Pixel DST rote Ellipse SRC blaues Rechteck

29 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 29 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

30 Font Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 30 Font-Objekte: Setzen des Ausgabefonts Schriftfamilie (Standardnamen: "SansSerif", "Serif", "Monospaced", "Dialog", "DialogInput") Schriftschnitt (Font.PLAIN, Font.BOLD, Font.ITALIC, Font.BOLD + Font.ITALIC) Schriftgrad (Größe in Punkten) Font f = new Font("Serif", Font.BOLD, 14); setfont: Setzen eines Fonts im Graphikkontext jede nachfolgende Textausgabe im gesetzten Font protected void paintcomponent(graphics g) { Font f = new Font("Serif", Font.BOLD, 14); g.setfont(f); g.drawstring("textausgabe im Font Serif Bold, 14pt, 100, 100);...

31 TrueType-Fonts Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 31 TrueType-Fonts werden über InputStreams gelesen URL url = new URL(" InputStream in = url.getstream(); Font f = Font.createFont(Font.TRUETYPE_FONT, in); und Fonts mit entsprechender Größe mit derivefont erzeugt Font df = f.derivefont(font.italic, 14.0f);

32 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 32 Typographie [1/2] typographische Informationen Zugriff über Grafikkontext Graphics-Objekt FontMetrics fm = g.getfontmetrics(); // aktueller Font FontMetrics fm = g.getfontmetrics(font); Methoden von FontMetrics: int charwidth(char ch) int stringwidth(string s) int getascent() int getdescent() int getheight() int getleading() Breite eines bestimmten Zeichens Breite eines Strings Oberlänge Unterlänge Höhe Durchschuss

33 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 33 Typographie [2/2] in Java2D: Werte des Schriftsatzes Abrufen des RenderContext vom Graphics2D-Objekt Zugriff auf LineMetrics von Font-Objekt FontRenderContext context = g2d.getfontrendercontext(); LineMetrics metrics = font.getlinemetrics(context); float ascent = metrics.getascent(); float leading = metrics.getleading(); Textgrößen Ermitteln des Rechtecks für Text von Font-Objekt Zugriff auf Eigenschaften des Rechtecks FontRenderContext context = g2d.getfontrendercontext(); Rectangle2D bounds = font.getstringbounds("grundbegriffe des", context); double stringwidth = bounds.getwidth();

34 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 34 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

35 ImageIO Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 35 seit Java 1.4 Einlesen von Bildern aus Dateien und Web-Ressourcen try { String filename = "..."; Image image = ImageIO.read(new File(fileName)); catch (IOException excpt) { try { String urlname = "..."; Image image = ImageIO.read(new URL(urlName)); catch (IOException excpt) { Zeichnen von Bildern mit drawimage protected void paintcomponent(graphics g) { g.drawimage(image, 100, 100, this);

36 Graphikprogrammierung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 37 Graphikausgabe und AWT-Thread Zeichnen bei Swing Java 2D-API Fonts Images Zusammenfassung

37 Zusammenfassung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 38 AWT-Event-Loop Überschreiben von paint vom Component Bei Swing Überschreiben von paintcomponent vom JComponent Ausruf von repaint um Zeichnen zu erzwingen Graphics für einfache Ausgabe mit draw-methoden Graphics2D für komplexe objektorientierte Ausgabe Graphische Objekte Einstellungen Strich Füllung Transformation Komposition Clipping Wiedergabehinweise

Ereignisse Graphikausgabe in AWT und Swing

Ereignisse Graphikausgabe in AWT und Swing Swing Programierung Ereignisse Graphikausgabe in AWT und Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Ereignisse Kommunikation mit anderen Beans Zustandsänderung wird allen Interessierten

Mehr

Programmieren II. Zeichnen in Swing-Komponenten. Heusch 18 Ratz Institut für Angewandte Informatik

Programmieren II. Zeichnen in Swing-Komponenten. Heusch 18 Ratz Institut für Angewandte Informatik Programmieren II Zeichnen in Swing-Komponenten Heusch 18 Ratz 16.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Zeichnen in Swing-Komponenten (1) Eine Swing-Komponente kann nicht

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

Zeichnen und animieren

Zeichnen und animieren Zeichnen und animieren Grundlage bildet wieder die Klasse Graphics Ein Objekt der Klasse Graphics wird immer der paint Methode übergeben public void paint (Graphics g) Auch außerhalb von paint kann Graphics

Mehr

24. Textausgabe in Java. Vorgetragen von Rüdiger Heidenreich

24. Textausgabe in Java. Vorgetragen von Rüdiger Heidenreich 24. Textausgabe in Java Vorgetragen von Rüdiger Heidenreich Übersicht Ausgabe Funktionen Unterschiedliche Schriftarten Eigenschaften von Schriftarten Ausgabefunktionen Methoden aus der Klasse Graphics

Mehr

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

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

import java.applet.applet; import java.awt.*; public class Grow extends Applet { public void start() { setbackground(color.orange); } public void 22.3 Animation Animation ist eine Bewegung vortäuschende Abfolge von Bildern(evt. mit Ton unterlegt:-) Für das menschliche Auge genügen 24 Bilder pro Sekunde. In der Zeit dazwischen legen wir das Applet

Mehr

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse

Mehr

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet

Mehr

Gegeben ist ein Path-Objekt mit folgender Beschreibung des Hauses vom Nikolaus:

Gegeben ist ein Path-Objekt mit folgender Beschreibung des Hauses vom Nikolaus: Lösungen 1. Aufgabe Gegeben ist ein Path-Objekt mit folgender Beschreibung des Hauses vom Nikolaus: 1. Implementiere die paint()-methode im Rahmen eines Applets. Führe das Applet aus und zeige über das

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Schablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden

Schablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden Generics Schablonen für Klassen, Interfaces oder Methoden, die noch nicht festgelegte Datentypen verwenden Typvariablen statt (fester) Datentypen werden hinter Bezeichnern in spitzen Klammern aufgezählt

Mehr

84 Wie kann ich einfache Strukturen zeichnen?

84 Wie kann ich einfache Strukturen zeichnen? Multimedia Core 84 Wie kann ich einfache Strukturen zeichnen? Seit Java2 (JDK 1.2) steht das Java2D-API zur Verfügung. Mit dieser Einführung sind viele erweiterte Grafikmöglichkeiten zur Verfügung gestellt

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel X Zeichnen mit Java2D SWT I Sommersemester 2009 Prof. Walter F. Tichy David Meder Literatur Informationen zu Java2D finden Sie in

Mehr

<a href="basic.java">the source.</a>

<a href=basic.java>the source.</a> Start-Tags von Elementen können Attribute enthalten, die Zusatz-Informationen für die Darstellung des Elements enthalten. Der Wert eines Attributs kann(u.a.) ein String sein. Das Attribut href des Elements

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

Mehr

Kapitel X - Zeichnen mit Java2D

Kapitel X - Zeichnen mit Java2D Kapitel X - Zeichnen mit Java2D SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

Bitmaps und Animationen

Bitmaps und Animationen Bitmaps und Animationen 1 Themenübersicht 1. Bitmaps 1. Die Klasse Image 2. Laden und Anzeigen von Bildern 3. Skalierungen und Transformationen 2. Animationen 1. Animationen mit Threads 2. Bildschirmflackern

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz 16 Zeichnen in Swing-Komponenten 2009 2014, Prof. Dr. D. Ratz 16.1 Grafische Darstellung von Komponenten Der Repaint-Manager sorgt für die grafische Darstellung der Komponenten Aktivierung beim erstmaligen

Mehr

Programmieren II. Java-Applets. Heusch 17 Ratz 4. www.kit.edu. Institut für Angewandte Informatik

Programmieren II. Java-Applets. Heusch 17 Ratz 4. www.kit.edu. Institut für Angewandte Informatik Programmieren II Java-Applets Heusch 17 Ratz 4 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Was sind Java-Applets? Minianwendung

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

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

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Informatik II. Aufgabe 1: Image Viewer ImageViewer.java

Informatik II. Aufgabe 1: Image Viewer ImageViewer.java Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 27. Juli 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 12 Aufgabe 1: Image Viewer ImageViewer.java Informatik

Mehr

Tag 9: Grafische Benutzeroberflächen

Tag 9: Grafische Benutzeroberflächen Kapitel 10 Tag 9: Grafische Benutzeroberflächen In Java gibt es zunächst zwei verschiedene Möglichkeiten Klassen für die Grafikausgabe zu verwenden. Eine Möglichkeit ist AWT (=Abstrakt Windows Toolkit)

Mehr

Softwareentwicklung Applets und Graphik

Softwareentwicklung Applets und Graphik Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Applets und Graphik E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung und

Mehr

Musterübung 09: Vererbung und Dynamische Bindung

Musterübung 09: Vererbung und Dynamische Bindung Musterübung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Hofer) G4 (Angerer) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 7. Die Graphics Class 7.2 Polygone 7.3 Ovale, Kreis 7.4 Bogen(Arcs) 7.5 Ein vollständiges Beispiel 7.6 Kopieren, Löschen.1 7 Die Graphics Class 7 Die Graphics Class Die Methode paint() der Graphics-Klasse

Mehr

Images. Kommen auf zweierlei Weise zur Anwendung. Darstellung von Pixelbildern(.jpg,.gif,.png) Bilden die Grundlage für Offscreendrawing

Images. Kommen auf zweierlei Weise zur Anwendung. Darstellung von Pixelbildern(.jpg,.gif,.png) Bilden die Grundlage für Offscreendrawing Graphics Klasse, die alle grundlegenden Methoden zum Zeichnen und Schreiben bereitstellt (draw -Methoden, Methoden zu Fonts und Colors) Bereitstellung eines Graphics-Objektes durch das AWT bei Aufruf der

Mehr

3. Das Java-AWT (I) Elementares Zeichnen

3. Das Java-AWT (I) Elementares Zeichnen 3. Das Java-AWT (I) Elementares Zeichnen OO-Graphics in Java Java AWT(I) 55 Das AWT von Java Abstract: allgemeiner, plattformunabhängiger Ansatz Window: Umgang mit Fenstersystemen Toolkit: sehr grosse

Mehr

JAVA2D OKTOBER package at.ac.wuwien.examples.swingdemo; 3 import javax.swing.*; 5 public class SimpleGUI extends JFrame {

JAVA2D OKTOBER package at.ac.wuwien.examples.swingdemo; 3 import javax.swing.*; 5 public class SimpleGUI extends JFrame { GUIs mit Swing Swing und Java2D Albert Weichselbraun Swing setzt auf AWT auf leichtgewichtige Komponenten Realisiert die MVC (Model-View-Controller) Architektur Komponenten: siehe Index http://java.sun.com/docs/books/tutorial/

Mehr

Grafik mit Java Ac

Grafik mit Java Ac Es gibt verschiedene Methoden, in Java Grafik zu erzeugen: Grafik mit Java Ac 03-2018 1) Grafik in einem Frame ( hier: JFrame) Ein JFrame wird erzeugt und mit der paint-methode, die einen Grafikkontext

Mehr

8.6 Visualisierung der Sortieralgorithmen

8.6 Visualisierung der Sortieralgorithmen 8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 16. Java: Threads für Animationen 1 Motivation

Mehr

!!!" # $ # %&' $ ' ( )

!!! # $ # %&' $ ' ( ) !!!" #$ #%&'$' () *)+)'& *',- import javax.swing.* ) import javax.swing.*; public class SimpleFrameTest { public static void main(string[] args) { SimpleFrame frame = new SimpleFrame(); )) )-)- ).'&-)

Mehr

Fenster in Java. von Stefanie Gerckens 1

Fenster in Java. von Stefanie Gerckens 1 Fenster in Java von Stefanie Gerckens 1 Inhaltsverzeichnis Die verschiedenen Fensterklassen Aufrufen und Schließen eines Fensters Visuelle Eigenschaften eines Fensters Anzeigezustand eines Fensters Fensterelemente

Mehr

Grafikprogrammierung mit Java Teil 1/2

Grafikprogrammierung mit Java Teil 1/2 Grafikprogrammierung mit Java Teil 1/2 Martin Tischmann 15. Juni 2009 Inhaltsverzeichnis Das Abstract Windowing Toolkit Anlegen eines Fensters Die Methode paint Das grafische Koordinatensystem Schließen

Mehr

Appletprogrammierung

Appletprogrammierung Appletprogrammierung 362 Übersicht zum Vorlesungsinhalt zeitliche Abfolge und Inhalte können variieren Appletprogrammierung HTML Methoden eines Applets AppletViewer Applikation zu Applet Flackernde Applets

Mehr

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel 17. 6. 2010 Kapitel 8: Java-Programmierung 8.1 Ereignisbehandlung, Benutzungsschnittstellen 8.2 Graphikprogrammierung 8.1 Ereignisbehandlung

Mehr

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

Drucken. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Drucken Grundlagen In Java wird zum Drucken die Java Printing API verwendet. Die entsprechenden Klassen und Schnittstellen

Mehr

B2. 2D-Computergrafik mit Java

B2. 2D-Computergrafik mit Java B2. 2D-Computergrafik mit Java B2.1 Grundbegriffe der 2D-Computergrafik B2.2 Einführung in das Grafik-API "Java 2D" B2.3 Eigenschaften von Grafik-Objekten B2.4 Integration von 2D-Grafik in Programmoberflächen

Mehr

Grafik-Programmierung

Grafik-Programmierung Grafik-Programmierung In dieser Übung beschäftigen wir uns zunächst mit elementaren Grundlagen der Grafikprogrammierung. In der nächsten Übung werden wir dies auf Spiele anwenden. Aufgabe 1: Einfache Grafik:

Mehr

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt GUI GUI = Graphical User Interface Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt Gute Übersicht über alle Funktionalitäten

Mehr

Model-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Model-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Model-View-Controller Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Model View Controller (MVC) Architekturmuster für die Gestaltung von interaktiven Oberflächen 3 Komponenten Model: Datenmodell

Mehr

B2. 2D-Computergrafik mit Java

B2. 2D-Computergrafik mit Java B2. 2D-Computergrafik mit Java B2.1 Grundbegriffe der 2D-Computergrafik B2.2 Einführung in das Grafik-API "Java 2D" B2.3 Eigenschaften von Grafik-Objekten B2.4 Integration von 2D-Grafik in Programmoberflächen

Mehr

Speichern der Benutzereinstellungen

Speichern der Benutzereinstellungen Speichern der Benutzereinstellungen Die vorgestellte Methode, Daten in Dateien zu speichern, haben wir erfolgreich beim Fußballmanagerprojekt eingesetzt. Das wäre auch für das Speichern von Benutzereinstellungen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

double size[][] = {{10.0, 400.0, 20.0, 160.0, 20.0, 400.0, 10.0}, // Columns {10.0, 500.0, 20.0, 180.0, 10.0}}; // Rows

double size[][] = {{10.0, 400.0, 20.0, 160.0, 20.0, 400.0, 10.0}, // Columns {10.0, 500.0, 20.0, 180.0, 10.0}}; // Rows Stanze public class StanzeGUI extends JFrame{ ImagePanelStanze panelstanze; ImagePanelPlatine panelplatine; HandbetriebPanel panelhandbetrieb; AutomatikGUI panelautomatik; Automatik steuerung; ComportPanel

Mehr

GUIs in Java und ihre Programmierung

GUIs in Java und ihre Programmierung GUIs in Java und ihre Programmierung Einführung GUI = Graphical User Interface graphische Benutzerschnittstelle Java Tutorial java.sun.com/docs/books/tutorial/index.html Java Documentation (in Version

Mehr

// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*;

// // // // // erstellt von W. Stickler import java.applet.*; import java.awt.*; import java.awt.image.*; erstellt von W. Stickler 1997 import java.applet.*; import java.awt.*; import java.awt.image.*; public class Othello extends Applet implements Runnable private Thread m_othello = null; KONSTANTEN mit Präfix

Mehr

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Application Frameworks and Componentware Wintersemester 2002/03. Komponentenbasierte Programmierung in Java

Application Frameworks and Componentware Wintersemester 2002/03. Komponentenbasierte Programmierung in Java JavaBeans Java inproc Komponenten Übersicht Komponentenbasierte Programmierung in Java JavaBeans werden in der JVM der Anwendung ausgeführt JavaBeans sind Komponenten, die über Zugriffsklassen verfügen

Mehr

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw. Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.

Mehr

Übung 09: Vererbung und Dynamische Bindung

Übung 09: Vererbung und Dynamische Bindung Übung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) G4 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 12 Grafische Benutzerschnittstellen... 12-2 12.1 Komponenten... 12-2 12.1.1 AWT und Swing... 12-2 12.1.2 Beispiel Hallo Welt!... 12-3 12.2 Ereignisverarbeitung... 12-6 12.3 Grafik... 12-10 12.3.1

Mehr

2. Visualisierung von mathematischen Objekten und Prozessen

2. Visualisierung von mathematischen Objekten und Prozessen Quelle: Mathematik und Java, Teil 2 Visualisierung von mathematischen Objekten und Prozessen 1. Übersicht Package java.applet Burkhard Wolf, Gerd Bohlender 2. Übersicht Package java.awt Abstract W indow

Mehr

NTB Druckdatum: 01.04.13 -

NTB Druckdatum: 01.04.13 - AWT UND SWING AWT = abstract windowing toolkit Bausteine Eigenes Fenster Programmcode steht nicht im Main, sondern in einer separaten Klasse extends JFrame JWindow selbstständiges Fenster, ohne Rahmen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 12 Grafische Benutzerschnittstellen... 12-2 12.1 Komponenten... 12-2 12.1.1 AWT und Swing... 12-2 12.1.2 Beispiel Hallo Welt!... 12-3 12.2 Ereignisverarbeitung... 12-6 12.3 Grafik... 12-10 12.3.1

Mehr

Praktikum 4: Grafiken und Ereignisse

Praktikum 4: Grafiken und Ereignisse Praktikum 4: Grafiken und Ereignisse Aufgabe 1: Java Applikation Bisher haben wir in Java (ebenso wie in C) jeweils selbständige Konsole-Applikationen erstellt. Java wurde als Programmiersprache für das

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Plotten von Kreisen ( nach Jack Bresenham ) (C) Ac bis

Plotten von Kreisen ( nach Jack Bresenham ) (C) Ac bis Plotten von Kreisen ( nach Jack Bresenham ) (C) Ac 3-1990 bis 2-2017 Wie zeichnet der Computer Kreise? Natürlich mithilfe von Pixels, picture elements, also kleinen Bildpunkten. Die beste Approximation

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Layout und Paint. Die Layout und Paint Strategie in AWT/Swing Containern. Prof. Dr. Nikolaus Wulff

Layout und Paint. Die Layout und Paint Strategie in AWT/Swing Containern. Prof. Dr. Nikolaus Wulff Layout und Paint Die Layout und Paint Strategie in AWT/Swing Containern Prof. Dr. Nikolaus Wulff Dynamische Komponenten Häufig kommt es vor, dass Komponenten auf Grund von Ereignissen zu einem Container

Mehr

Programmieren in Java

Programmieren in Java 17. Übung 1. Aufgabe Schreibe ein Programm, das eine Textdatei (z.b. *.java ) aus dem aktuellen Verzeichnis über eine TextArea auf ein Fenster des Bildschirms abbildet. Jede Zeile soll dabei durchnummeriert

Mehr

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

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen(); Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

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

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Abstract Window Toolkit

Abstract Window Toolkit Abstract Window Toolkit Thomas Röfer Desktop-Metapher AWT und Swing Applets und Anwendungen Rahmen und Menüs Komponenten und Container Panels und Layouts Grafik und Schriften Ereignisbehandlung Rückblick

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

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

Drucken soll nur das Panel, nicht der ganze Rahmen gedruckt werden. Kapitel 1 Drucken von Swing-Komponenten. Wir wollen eine einfache Methode zum Drucken einer Swing-Komponente vorstellen und daran den Mechanismus der Druckereinbindung in JAVA studieren. Anschließen wird

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT 1. Laboraufgabe Grafische Nutzerschnittstellen Studiengang I / IEA / SAT FB Automatisierung und Informatik: Grafische Nutzerschnittstellen 1 1. Laboraufgabe: Die Aufgabe lautet, ein Javaprogramm zu schreiben,

Mehr

Java Kurzreferenz Für Fortgeschrittene

Java Kurzreferenz Für Fortgeschrittene Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen

Mehr

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung 2D Spiele programmieren in Java Teil 3: Bilder, Animationen Dr. Katja Wegner Dr. Ursula Rost Bilder Sind vielfach in Spielen einsetzbar (Menüs, Hintergrund, Objekte) Eigenschaften: Typ (e.g. bitmap, vector)

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek 1 Ereignis-orientierte Programmierung Prinzipien Programm besteht aus einer Reihe von Dämonen (=Listener) Dämon (=Listener)

Mehr

Swing. Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung

Swing. Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Swing Einführung Painting bei Swing Menus and Action Swing-Komponenten JSpinner JTextField JFormattedTextField JList JTable JTree weitere

Mehr

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

Mehr

1. Konventionelle Ein-/Ausgabebetonte Programmierung

1. Konventionelle Ein-/Ausgabebetonte Programmierung 1. Konventionelle Ein-/Ausgabebetonte Programmierung 1.1 Realisierung grafischer Benutzungsoberflächen Beispiel Java AWT und Swing 1.2 Grundlagen der 2D-Computergrafik Grundbegriffe der Computergrafik

Mehr

Lesen Sie zuerst die Hinweise auf der Rückseite!

Lesen Sie zuerst die Hinweise auf der Rückseite! Fachbereich Informatik Lehrgebiet Programmiersysteme Prof. Dr. Friedrich Steimann FernUniversität in Hagen D-58084 Hagen (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands)

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

AWT AWT. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 2

AWT AWT. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 2 AWT Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 AWT Einführung Components and Containers Layoutmanagement Graphikausgabe und AWT-Thread Java 2D-API Ereignisse MVC Architektur Komponenten Zusammenfassung

Mehr

Applets und HTML. Martin Wirsing. Exkurs: Noch einmal Object. in Zusammenarbeit mit Matthias Hölzl, Nora Koch

Applets und HTML. Martin Wirsing. Exkurs: Noch einmal Object. in Zusammenarbeit mit Matthias Hölzl, Nora Koch Applets und HTML Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 12/03 Exkurs: Noch einmal Object 2 Achtung: Die Methode equals der Klasse Object kann unterschiedlich implementiert werden:

Mehr

Wiederholung aus SWE2

Wiederholung aus SWE2 Wiederholung aus SWE2 Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum

Mehr

Abstrakte Klassen, Interfaces und Pakete

Abstrakte Klassen, Interfaces und Pakete Abstrakte Klassen, Interfaces und Pakete Vorbemerkung: Wir wollen allmählich die Basis für die Entwicklung (einfacher) Spiele in Java schaffen. Dazu erstellen wir in dieser Übung einige Schnittstellen

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 11 F. Forster,

Mehr