- import sum.kern.*;
- /**
- * Wir programmieren ein Malprogramm.
- *
- * Marcel Schwegler & Peter Berens
- * Version 1.0
- */
- public class Malprogramm
- {
- // Es werden Objekte der Klassen Bildschirm, Buntstift, Maus und Tastatur erstellt
- private Bildschirm meinBildschirm;
- private Buntstift meinStift;
- private Maus meineMaus;
- private Tastatur meineTastatur;
- private int MausPosition_H;
- private int MausPosition_V;
- private int farbe;
- private int linienbreite;
- private int fuellMuster;
- /**
- * Konstruktor für Objekte der Klasse Malprogramm
- */
- public Malprogramm()
- {
- meinBildschirm = new Bildschirm();
- meinStift = new Buntstift();
- meineMaus = new Maus();
- meineTastatur = new Tastatur();
- MausPosition_H = 0; // Die Horizontale Mausposition wird beim Starten des Programmes auf die x-Koordinate 0 gesetzt.
- MausPosition_V = 0; // Die Vertikale Mausposition wird beim Starten des Programmes auf die y-Koordinate 0 gesetzt.
- farbe = 0; // Die Farbe des Stiftes wird beim Starten des Programmes auf den Wert 0, also Schwarz gesetzt.
- linienbreite = 2; // Die Linienbreite des Stiftes wird beim Start des Programms auf den Wert 2 gesetzt.
- fuellMuster = 1; // Das Fuellmuster des Stiftes wird beim Start des Programms auf den Wert ^gesetzt.
- malenDurchBewegenDerMaus();
- }
- // Methoden der Klasse Malprogramm
- // Der Stift wird auf die Position x = 0 und y = 0 bewegt.
- // Ist die Bedingung erfuellt, dass die Maus nicht gedrueckt ist, bekommt der Stift immer wieder eine einzelne neue Mauskoordinate, der er folgt. Dann wird auf dieser Koordinate ein Punkt gezeichnet.
- // Wenn die Bedingung weiterhin erfüllt ist, wiederholt sich dieser Prozess. Deshalb sieht die Punktkette am Ende wie eine Linie aus.
- // Die Schleife wird mit einem Mausklick beendet.
- public void malenDurchBewegenDerMaus()
- { meinStift.bewegeBis(0, 0);
- do
- {
- if (meineMaus.istGedrueckt())
- {
- meinStift.bewegeBis(meineMaus.hPosition(), meineMaus.vPosition());
- meinStift.zeichneKreis(2);
- }
- } while (!meineMaus.doppelKlick());
- }
- public void radiere()
- // Der Stift nimmt die Hintergrundfarbe an, und übermalt damit den Bildschirm
- {
- }
- public void füllmuster(int fuelmuster)
- // Durch Eingabe von Zahlen bzw. einem Integer (1,2,3) kann das Füllmuster auf durchsichtig, durchscheinend oder undurchsichitig geändert werden.
- {
- }
- public void farbwechsel(int farbe)
- // Farbe kann durch eine Tastenkombination oder Eingabe geändert werden
- {
- }
- public void punktsetzenDurchMausdruck ()
- // Durch einen Druck auf den Mausknopf, wird ein Punkt an der aktuellen Mausposition gezeichnet. Das Programm wird durch einen Doppelklick beendet.
- {
- }
- public void punktDurchKlick()
- // Mit einem Klick auf den Mausknopf wird an der aktuellen Position ein Punkt gezeichnet. Durch Doppelklick wird das Programm beendet.
- {
- }
- public void freihandzeichnen()
- //Solange der Mausknopf gedrückt ist, folgt eine Linie auf dem Bildschirm den Bewegungen der Maus. Das Programm wird durch einen Doppelklick beendet.
- {
- }
- public void freihandzeichnenMitRadieren()
- //Solange der Mausknopf gedrückt ist, folgt eine Linie auf dem Bildschirm den Bewegungen der Maus. Das Programm wird durch einen Doppelklick beendet.
- //Zusätzlich kann durch drücken einer Taste auf "Radieren" gewechselt werden.
- {
- }
- public void LinieZeichnen()
- // Wenn der Mausknopf gedrückt wird, wird ein Punkt an der Mausposition gezeichnet. Wenn der Mausknopf losgelassen wird, wird dieser Punkt mit
- // der Mausposition im Moment des loslassen verbunden. Das Programm wird durch einen Doppelklick beendet.
- {
- }
- public void LinieZeichnenMitFarbwechsel()
- // Wenn der Mausknopf gedrückt wird, wird ein Punkt an der Mausposition gezeichnet. Wenn der Mausknopf losgelassen wird, wird dieser Punkt mit
- // der Mausposition im Moment des Loslassen verbunden. Das Programm wird durch einen Doppelklick beendet. Zusätzlich kann durch drücken der Taste "r" die Zeichenfarbe auf Rot gesetzt werden.
- {
- }
- public void LinieZeichnenMitZweifachemFarbwechsel()
- // Wenn der Mausknopf gedrückt wird, wird ein Punkt an der Mausposition gezeichnet. Wenn der Mausknopf losgelassen wird, wird dieser Punkt mit
- // der Mausposition im Moment des Loslassen verbunden. Durch Drücken der Taste "r" wird die Zeichenfarbe des Programmes auf Rot gesetzt, durch das Drücken einer anderen Taste auf Schwarz.
- // Das Programm wird druch einen Doppelklick beendet.
- {
- }
- public void LinieZeichnenMitMehrfachemFarbwechsel()
- // Wenn der Mausknopf gedrückt wird, wird ein Punkt an der Mausposition gezeichnet. Wenn der Mausknopf losgelassen wird, wird dieser Punkt mit
- // der Mausposition im Moment des Loslassen verbunden. Zusätzlich kann die Zeichenfarbe durch drücken verschiedener Tasten verändert werden. Dazu wird der Anfangsbuchstabe der Farben (schwarz, rot, grün,
- // oder blau) gedrückt. Das Programm wird durch einen Doppelklick beendet.
- {
- }
- public int MaushPosition ()
- // Gibt die aktuelle horizontale Mausposition zurück
- {
- return meineMaus.hPosition();
- }
- public int MausvPosition ()
- // Gibt die aktuelle vertikale Mausposition zurück
- {
- return meineMaus.vPosition();
- }
- public void zeichneLinie ()
- // Es wird eine Linie zwischen zwei angeklickten Punkten auf dem Bildschirm gezeichnet
- {
- }
- public void Linienbreite(int breite)
- // Stift ändert Breite durch eine Tastenkombination oder Eingabe
- {
- }
- public boolean istGedrueckt ()
- // Gibt zurück, ob die Maus gedrückt wurde
- {
- return meineMaus.istGedrueckt();
- }
- public void gibFrei()
- // die Methode zerstört die Objekte und gibt dadurch den belegten Arbeitsspeicher frei
- {
- meinBildschirm.gibFrei();
- meinStift.gibFrei();
- meineMaus.gibFrei();
- meineTastatur.gibFrei();
- }
- }