Technische Informatik Ba.: IN3, Zug 2 – Informatik III (Java) im WS 08, Prof. Knabe, 2008-12-09 Aufgabe 8: Abstandsberechnung, java.util.List<Figur> Abgabetermin: 6. Jan. 2009 Benötigt: DiagrammDialog.java, Diagramm.java, Lösung von Übung 3, Framework MulTEx in Form von http://public.tfh-berlin.de/~knabe/mvn-repo/de/tfh-berlin/knabe/multex/8.1/multex-8.1.jar Implementieren Sie die Abstrakte Klasse diagr.Diagramm durch eine Klasse diagr.DiagrammImpl. Übersetzen Sie den Testtreiber diagr. DiagrammDialog und rufen Sie ihn dann auf mittels java diagr.DiagrammDialog Führen Sie die einzelnen Testschritte durch, indem Sie immer wieder auf den „Weiter“-Knopf klicken. Es soll nach und nach das bekannte Gesicht entstehen. Der Testtreiber schreibt in das Eingabeaufforderungsfenster jeweils die Bezeichnung des aktuellen Testschritts. Das Fensterfoto ist nach Schritt 9. mut_markieren(70,77): linkes Auge zwecks Verschieben entstanden. Hinweise: Die im Entwurf (Skript §5.2.3) gefundene Klasse Diagramm wird hier wieder aufgespalten in die von mir (Knabe) gelieferte abstrakte Klasse und die von Ihnen zu liefernde Implementierungsklasse diagr.DiagrammImpl. • Wenn Sie folgendes Problem beim Übersetzen von z.B. figuren\Quadrat.java bekommen (Meldung „Class figuren.Figur already defined in Figur.java“), liegt es daran, daß die Datei Quadrat.java über mehrere Verzeichnisse über den CLASSPATH erreichbar ist (. und ..\figuren). Sie vermeiden diese Meldung, indem Sie das Hauptprogramm DiagrammDialog.java übersetzen. Dies bewirkt auch die Übersetzung aller Hilfsklassen. • Die zum schrittweise aufzubauenden Diagramm gehörigen Figuren speichern Sie in einer java.util.List<Figur>, die mit einer java.util.ArrayList<Figur> aus dem Collections Framework initialisiert wird. • Gegenüber dem Entwurf enthält Diagramm zusätzlich die Methoden laden(dateiname) und speichern(dateiname). Diese beiden Methoden sind für eine spätere Aufgabe erforderlich. Da Sie diese noch nicht sinnvoll implementieren können, lösen Sie bitte als einzige Aktion unmittelbar die spezifizierte Ausnahme aus, z.B. per: throw new Diagramm.LadenFailure(null,"NichtImplementiert"); • In AbstrakteFigur müssen Sie jetzt die Informatoren abstandZumOrtspunkt(x,y) und abstandZumBildpunkt(x,y) definieren. Sie müssen keinen mathematisch korrekten Abstand liefern, sondern nur eine Maßzahl dafür (kleinerer Wert ~ näher dran). • Die aktuell markierte Figur im Diagramm sollen Sie wie unter markieren(x, y) beschrieben hervorgehoben zeichnen. Dafür muss markieren aus den Koordinaten (x, y) die gewünschte Figur und gleichzeitig den Markierungszweck ermitteln und paintComponent entsprechend zeichnen. • Das Framework MulTEx (http://public.tfh-berlin.de/~knabe/java/multex/) wird benutzt, um Ausnahmen zu parametrieren und mit einem Meldungstext zu versehen. Sie müssen die Datei multex-8.1.jar mit in den Classpath aufnehmen. Bei Eclipse unter Project > MausRechts > Properties > Java Build Path > Libraries. [C:\knabeTFH\Java\pjc3\08w08_DiagrammDialog\Aufgabe.odt]