+ All Categories
Home > Documents > Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java

Date post: 06-Jan-2016
Category:
Upload: freja
View: 16 times
Download: 0 times
Share this document with a friend
Description:
Einführung in die Programmierung mit Java. 12. Vorlesung WS-03/04. Mein Malprogramm Smile. Mein Malprogramm Smile. Anwendungsmenü : JMenuBar + JMenu + JMenuItem. Funktionsknöpfe : JToolBox + JToggleButton. Leinwand zum Bemalen: JPanel. javax.swing.JMenuBar das Anwendungsmenü. - PowerPoint PPT Presentation
34
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörs Einführung in die Programmierung mit Java 12. Vorlesung WS-03/04
Transcript
Page 1: Einführung in die Programmierung mit Java

Institut für Kartographie und GeoinformationProf.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk DörschlagInstitut für Kartographie und GeoinformationProf.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag

Einführung in dieProgrammierung mit Java

12. Vorlesung WS-03/04

Page 2: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Mein MalprogrammSmile

Page 3: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Mein MalprogrammSmile

Leinwand zum Bemalen:JPanel

Funktionsknöpfe : JToolBox + JToggleButtonAnwendungsmenü : JMenuBar + JMenu + JMenuItem

Page 4: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuBardas Anwendungsmenü

• Kann allen Swing-Form-Komponenten hinzugefügt werden

• Swing-Form-Komponenten sind:JFrame, JApplet, JPanel, JInternalFrame und Jdialog

• Form-Komponenten können genau eine sichtbare JMenuBar besitzen, alle anderen werden verdeckt.

• Ein JMenuBar kann Komponenten von Typ JMenu aufnehmen

Page 5: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuBarMenupunkte hinzufügen

öffnen durch Klick mit rechter Maustaste

Page 6: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuder Titel des Menüs

Page 7: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuhinzufügen von Menüpunkten

Page 8: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuItemein einfacher Menüpunkt

Page 9: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JMenuItemMenüpunkte mit Aktionen verbinden

Page 10: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JPaneldie Zeichenfläche

Anlegen : Anlegen :

Über das Menü (in Forte): 1. Datei -> Neu2. im sich öffenden Fenster „Templates“ den Ordner

„Swing Forms“ öffnen und „JPanel“ auswählen und weiter mit Next

3. den Namen eingeben (, eventuell das Package (Verzeichnis) in dem die neu Klasse liegen soll auswählen) und mit Finish das Erzeugen abschließen

4. es öffnet sich automatisch die Forte-Umgebung „GUI Editing“

Page 11: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JPaneldie Zeichenfläche

• JPanel sind einfache Oberflächen

• JPanel sind keine Anwendung• JPanel können andere

Komponenten aufnehmen• JPanel haben ein Layout

z.B. ein BorderLayout

Page 12: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Malen auf einem JPanel

Nötig ist das Überschreiben (siehe Polymorphie) der Methode :Nötig ist das Überschreiben (siehe Polymorphie) der Methode :......public void paintComponent( java.awt.Graphics g){

super.paintComponent( g);...

}

Wichtig, da nur dann sämtliche Einstellungen die in Attributen der Klasse JPanel gespeichert sind berücksichtigt werden

Der Grafikkontext der Oberfläche

Page 13: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Malen auf einem JPanel

Beispiel : Beispiel : malt einen Kreis und einen Textpublic class Leinwand extends JPanel {

public void paintComponent( java.awt.Graphics g){super.paintComponent( g);java.awt.Graphics2D g2d = (java.awt.Graphics2D) g;

g2d.drawOval( 13 , 12 , 14 , 14 );

g2d.setColor( new java.awt.Color( 0, 0, 255));

g2d.setStroke( new java.awt.BasicStroke(2));

g2d.drawString( “Mein Text“ , 80 , 80 );...

}} Zugriff auf den erweiterten

Grafikkontext mehr Funktionen

// malt einen Kreis

// ändern der Malfarbe

// ändern der Stricheigenschaften

// einen Text ausgeben

Page 14: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

JPanel zur Anwendung hinzufügen

public class Smile extends javax.swing.JFrame {

public Leinwand leinwand; //Leinwand extends JPanel {}

/** Creates new form Smile */public Smile() {

leinwand = new Leinwand( ); //Ein Leinwandobjekt erzeugen//Den LayoutManager von Hand wählenthis.getContentPane().setLayout( new java.awt.BorderLayout());//Das JPanel auf der Oberfläche anmeldenthis.getContentPane().add( leinwand, java.awt.BorderLayout.CENTER); //Initialisieren der mit Forte erzeugten KomponenteninitComponents();

}...

}

Page 15: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

die Klasse Polygon verbessern

public class Polygon {private Punkt[] punkte;public void hinzu( Punkt punkt){

if( punkte == null){punkte = new Punkt[1];

}else{

Punkt[] neu = new Punkt[ punkte.length + 1];for( int i = 0; i < punkte.length; i++){

neu[i] = punkte[i];}punkte = neu;

}punkte[ punkte.length – 1] = punkt;

}...

}

ProblemeProbleme aufgrund des Arraysaufgrund des Arrays :• hoher Zeitaufwand bei

dynamischem hinzufügen oder löschen von Punkten

Page 16: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

die Klasse Polygon verbessern

ProblemeProbleme aufgrund des Arraysaufgrund des Arrays:• hoher Zeitaufwand bei dynamischem

hinzufügen oder löschen von Punkten

besser für diese Aufgabenbesser für diese Aufgaben :• Listen verwenden ( Diskrete Mathe):

- entweder selbst schreiben ( siehe Vorlesung 11)

- oder vorgefertigte Klassen nutzen (z.B. java.util.LinkedList oder javax.swing.DefaultListModel)

Page 17: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.DefaultListModelAblegen von Objekten in Listen

import javax.swing.DefaultListModel;

public class Polygon {private DefaultListModel punkte;public void hinzu( Punkt punkt){

if( punkte == null){punkte = new DefaultListModel();

}punkte.addElement( punkt);

}...

}

public void addElement(Object object){...

}ist Methode der Klasse DefaultListModel, mit ihr kann ein Objekt am Ende der Liste hinzugefügt werden.Wichtig : ALLE Klassen sind von Object abgeleitet !

Page 18: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.DefaultListModeldurchlaufen einer Liste

import javax.swing.DefaultListModel;import java.util.Enumeration

public class Polygon {private DefaultListModel punkte;

public void ausgabe(){

Enumeration laeufer = punkte.elements();

while( laeufer.hasMoreElements()){

((Punkt) laeufer.nextElement()).ausgeben();}

}...

}

// Zugriff öffnen

// solange noch nicht alle Objekte abgefragt wurden

// ein Objekt abfragen und behandeln

Page 19: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

eigene Grafikobjekte

java.awt.Rectangle

public class Punkt extends Point { }

public class Ellipse { } public class Rechteck extends Rectangle { }

sollen alle eine Methodepublic void zeichen_auf( java.awt.Graphics2D g2d){ ... }

haben ...

java.awt.Point

Page 20: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

eine eigene Grafikobjektschnittstelle

public abstract class GrafikObjekt {public abstract void zeichnen_auf( java.awt.Graphics2D g2d);

}müsste mittels extends eingebunden werden.Es ist aber nur eine Oberklasse je Klasse erlaubt =>

java.awt.Rectangle

public class Punkt extends Point { }

public class Ellipse { } public class Rechteck extends Rectangle { }

java.awt.Point

Page 21: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

public class Punkt extends Point implements GrafikObjekt { }

public class Ellipse implements GrafikObjekt { }

public class Rechteck extends Rectangle implements GrafikObjekt { }

Lösung :Lösung :

eine eigene Grafikobjektschnittstelle

public interface GrafikObjekt {public void zeichnen_auf( java.awt.Graphics2D g2d);

}eine Klasse kann zusätzlich zum erweitern der Oberklasse beliebig viele Interfaces implementieren !

java.awt.Rectanglejava.awt.Point

Page 22: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

das Interface an sich

public interface Interfacename {public void methodenname( parameter);...

}

Syntax :Syntax :

Ein Interface darf nur :• abstrakte Methoden und• statische Attribute enthalten !

public interface GrafikObjekt {public void zeichnen_auf( java.awt.Graphics2D g2d);...

}

Beispiel :Beispiel :

Ein Interface kann nicht :• instanziiert werden !

das Schlüsselwort abstract wird nicht benötigt !

jedes Interface hat eine eigene Interfacename.java - Datei!

Page 23: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

ein Interface erweitern

public interface Interfacename extends Interface_1 (, Interface_2 ...){public void methodenname( parameter);...

}

Syntax :Syntax :

Ein Interface darf :• beliebig viele Interfaces als Oberklasse haben !

public interface FarbObjekt extends GraphikObjekt {public void farbe_aendern( java.awt.Color color);...

}

Beispiel :Beispiel :

Page 24: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

ein Interface implementieren

public class Klassenname implements Interface_1 (, Interface_2 ...){...

}

Syntax :Syntax :

Eine Klasse die ein Interface implementiert muss :• abstrakt sein oder• alle Methoden des Interfaces implementieren

public class Kreis implements GrafikObjekt {public void zeichen_auf( java.awt.Graphics2D g2d){

g2d.drawOval( this.x, this.y, this.radius, this.radius);}...

}

Beispiel :Beispiel :

Page 25: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

eigene Grafikobjekte darstellendurchlaufen einer Liste

import javax.swing.*;import java.util.Enumeration;

public class Leinwand extends JPanel {

public DefaultListModel grafik_objekte;

public void paintComponent( java.awt.Graphics g){super.paintComponent( g);java.awt.Graphics2D g2d = (java.awt.Graphics2D) g;

Enumeration laeufer = grafik_objekte.elements();while(laeufer.hasMoreElements()){

GrafikObjekt go = (GrafikObjekt) laeufer.nextElement() go.zeichen_auf( g2d);

}}

}

Page 26: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Grafikobjekte auf Mausklick

Page 27: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Grafikobjekte auf Mausklick

import javax.swing.*;import java.util.Enumeration;

public class Leinwand extends JPanel {

public Smile parent;public DefaultListModel grafik_objekte;

private void formMouseClicked(java.awt.event.MouseEvent evt) {// Add your handling code here:grafik_objekte.addElement( new Kreis( evt.getX(), evt.getY(), 10));parent.repaint(),

}

...}

Page 28: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Die Klasse Kreis

public class Kreis implements GraphikObjekt {

public doubel radius, x, y;

public Kreis( double x, double y, double radius) {this.x = x;this.y = y;this.radius = radius;

}

public void zeichen_auf(java.awt.Graphics2D g2d) {g2d.drawOval(x, y, radius, radius);

}

}

Page 29: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JToolBar

• ist automatisch mit BoxLayout ausgestattet

• kann im laufenden Programm neu platziert werden

Page 30: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

javax.swing.JToggleButton

• hat zwei Zustände : ausgewählt und nicht ausgewählt

• Zustand kann mit der Methode public boolean isSelected() abgefragt werden

• Zustand wird beim Anklicken der Komponente gewechselt

• drücken kann als Event mit hinzugefügt werden (bei Forte mittels ActionsActionEventactionPerformed)

Page 31: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

erzeugen von Kreisenan- und abschalten (erster Teil)

import javax.swing.*;

public class Smile extends JFrame {

public boolean kreise_erzeugen() {return( jToggleButton1.isSelected());

}

...

private JToggleButton jToggleButton1;

}

Page 32: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

erzeugen von Kreisenan- und abschalten (zweiter Teil)

import javax.swing.*;import java.util.Enumeration;

public class Leinwand extends JPanel {

public Smile parent;public DefaultListModel grafik_objekte;

private void formMouseClicked(java.awt.event.MouseEvent evt) {// Add your handling code here:if( parent.kreise_erzeugen() == true)

grafik_objekte.addElement( new Kreis( evt.getX(), evt.getY(), 10);parent.repaint();

}

...}

Leinwand besitzt folgenden Konstruktor :

public Leinwand( Smile parent) {this.parent = parent;grafik_objekte = new DefaultListModel();

}

Page 33: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Übungsaufgabe

Baut ein Malprogramm, das einem Menü, eine Toolbar mit einem ToggleButton und einer Leinwand besteht.

Die Klasse Leinwand soll von JPanel abgeleitet sein und die Methode paintComponent( java.awt.Graphics g){...} überschreiben.

Beim Start des Malprogramms soll auf der Leinwand ein Kreis gemalt werden. Wenn dieses funktioniert versucht mal einen Smily, ein Gesicht oder etwas anderes.Ihr könnt auch probieren, die Ausgabe mit dem ToggleButton an und ab zu schalten ...

Page 34: Einführung in die Programmierung mit Java

IKG; DörschlagDörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04

Hausaufgabe

Versucht, das Malprogramm aus der Vorlesung zu schreiben. Hierfür könnt ihr viele Klassen aus der Übung nutzen.

Neu : • Die Schnittstelle GrafikObjekt • und die Klassen die diese implementieren (z.B. Kreis),• sowie die Benutzung von DefaultListModel um die

GrafikObjekte zu speichern, die gleichzeitig mit einer Änderung der paintComponent() Methode der Leinwand verbunden ist !


Recommended