Hey Leute ich benötige unbedingt Hilfe bei der folgenden Aufgabe und eigentlich bis gestern :-) Habe vergessen die Aufgabe abzugeben und muss die bis Sonntag wegschicken, sonst war ein halbes Jahr lernen umsonst:
Bitte um Hilfe!!!
Es soll eine GUI programmiert werden, mit MVC:
Um von Anfang an eine bessere Strukturierung des Programms zu erzielen, programmieren Sie eine Node-Klasse, die einen Knoten innerhalb einer Graphstruktur darstellen soll. Ein Node-Objekt soll als Eigenschaften eine id (eindeutige Bezeichnung), eine Position (x-, y-Koordinaten), eine Größe und eine Farbe (Color-Objekt) besitzen. Die Node-Klasse soll mindestens zwei Konstruktoren anbieten. Eine, die die Position und die Größe des Knotens als Argument bekommt und eine, die nach Eingabe eines Wertebereichs die Position mit Hilfe eines Random-Objekts zufällig erzeugt.
Die wichtigste Methode in dieser Klasse, weil für die Ereignisbehandlung notwendig ist, ist die inNode-Methode, die nach Eingabe einer Punktposition entscheidet, ob sich der Punkt innerhalb der Knotenfläche befindet oder nicht.
public boolean inNode( int x, int y )
oder
public boolean inNode( Point p )
c) Als Zweites programmieren Sie eine Graph-Klasse.
Diese Klasse soll Graph-Objekte darstellen. Ein Graph-Objekt besteht aus einer Menge von Knoten und einer Menge von Verbindungen zwischen den Knoten (Kanten). Die Verbindungen zwischen den Knoten können mit Hilfe einer Adjazenzmatrix oder einer Adjazenzliste implementiert werden (siehe Vorlesungsfolien). Die Graph-Klasse soll mindestens einen Konstruktor anbieten, der bei Eingabe einer Knotenzahl und eines Wertebereichs für die Position der Knoten des Graphs alle Knoten mit zufälligen Positionen und zufälligen Verbindungen zwischen den Knoten erzeugt.
d) Schreiben Sie von Anfang an eine print-Methode, die die Verbindungen zwischen den Knoten in Textform ausgibt und eine connect-Methode, die neue Verbindungen zwischen zwei eingegebenen Knoten ermöglicht.
e) Schreiben Sie eine paint-Methode, damit das Graph-Objekt sich selbst bei Eingabe eines graphischen Kontexts (Graphics-Objekt) auf beliebige Behälter-Objekte zeichnen kann.
f) Programmieren Sie eine GraphPicture-Klasse als Unterklasse der JPanel-Klasse, die in Ihrem Konstruktor ein Graph-Objekt als Parameter bekommt und dieses Graph-Objekt entsprechend zeigt.
g) Innerhalb der GraphPicture-Klasse sollen die MouseListener- und die MouseMotionListener-Interfaces implementiert werden (siehe Vorlesungsbeispiel), so dass möglichst einfach die Positionen der Knoten innerhalb des Graph-Objekts verändert werden können, und neue Verbindungen zwischen den Knoten mit einfachen Maus-Klicks hergestellt werden können.
h) Zum Schluss programmieren Sie eine Fenster-Klasse, die das Graph-Objekt auf dem Bildschirm sichtbar macht.
Bin für jedes Codestück dankbar!