de:jltk:intro2

Beispiel: Eigene Klasse mit Window und Pen

In der kurzen Einführung wurden Objekte der Klasse Window und Pen erzeugt. Der Stift wurde dann bewegt und damit eine Figur gezeichnet.

In diesem Beispiel wird nun gezeigt, wie man eine eigene Klasse erstellt. Erzeugt man ein Objekt dieser Klasse wird automatisch ein Fenster und ein Stift erzeugt. Alle Anweisungen an den Stift um eine Figur zu zeichnen werden zusammen gefasst in einer sog. Methode. Ruftman diese Methode auf, werden all diese Anwiesungen sofort aufgerufen

Lege in blueJ ein neues Projekt an (Projekt → neues Projekt). Klick auf den Button Neue Klasse… und gib als Klassennamen Figuren ein. Es erscheint ein gelbes Rechteck, das die Klasse repräsentiert. Um den Quelltext für die Klasse zu schreiben, mach ein Doppelklick auf dieses Rechteck oder klicke mit der rechten Maustaste darauf und wähle Öffne Editor

Die Klasse wird mit einem Beispielquelltext gefüllt, der am Anfang aber nicht weiter hilft. Lösche ihn vollständig. (Z.B. STRG + A und dann Entf. drücken).

  1. import jltk.*;
  2.  
  3. public class Figuren
  4. {
  5.  
  6. }
Figuren.java
import jltk.*;
 
public class Figuren
{
    Window meinFenster;
    Pen meinStift;
 
 
    public Figuren()
    {
        this.meinFenster = new Window(400,200);
        this.meinFenster.setTitle("Figuren");
        this.meinStift = new Pen();
        this.meinFenster.showGrid();
    }
 
 
    public void rechteck()
    {
        this.meinStift.setPosition(150,50);
        this.meinStift.down();
        this.meinStift.move(100);
        this.meinStift.turn(90);
        this.meinStift.move(100);
        this.meinStift.turn(90);
        this.meinStift.move(100);
        this.meinStift.turn(90);
        this.meinStift.move(100);
        this.meinStift.turn(90);
        this.meinStift.up();
    }
 
    public void smiley(){
        this.meinStift.setPosition(200,100);
        this.meinStift.drawCircle(50);
        this.meinStift.setPosition(180,80);
        this.meinStift.drawCircle(5);
        this.meinStift.setPosition(220,80);
        this.meinStift.drawCircle(5);
        this.meinStift.setPosition(185,125);
        this.meinStift.down();
        this.meinStift.move(30);
        this.meinStift.up();
    }
 
    public void strichmaennchen1(){
        this.meinStift.setPosition(175,200);
        this.meinStift.down();
        this.meinStift.setPosition(200,150);
        this.meinStift.setPosition(225,200);
        this.meinStift.up();
        this.meinStift.setPosition(200,150);
        this.meinStift.setRotation(270);  // Nach oben
        this.meinStift.down();
        this.meinStift.move(60);
        this.meinStift.up();
        this.meinStift.setPosition(200,100);
        this.meinStift.turn(112.5);
        this.meinStift.down();
        this.meinStift.move(40);
        this.meinStift.up();
        this.meinStift.setPosition(200,100);
        this.meinStift.turn(135);
        this.meinStift.down();
        this.meinStift.move(40);
        this.meinStift.up();
        this.meinStift.setPosition(200,75);
        this.meinStift.drawCircle(15);
    }
 
    public void strichmaennchen1Loeschen(){
        this.meinStift.enableEraseMode(); //Radiermodus
        this.strichmaennchen1();  //Männchen im Radiermodus zeichen
        this.meinStift.enableDrawMode(); // ZUrück in den Malmodus
    }
 
    public void strichmaennchen2(){
        this.meinStift.setPosition(155,125);
        this.meinStift.down();
        this.meinStift.setPosition(200,150);
        this.meinStift.setPosition(250,125);
        this.meinStift.up();
        this.meinStift.setPosition(200,150);
        this.meinStift.setRotation(270);  // Nach oben
        this.meinStift.down();
        this.meinStift.move(60);
        this.meinStift.up();
        this.meinStift.setPosition(200,100);
        this.meinStift.turn(67.5);
        this.meinStift.down();
        this.meinStift.move(40);
        this.meinStift.up();
        this.meinStift.setPosition(200,100);
        this.meinStift.turn(225);
        this.meinStift.down();
        this.meinStift.move(40);
        this.meinStift.up();
        this.meinStift.setPosition(200,75);
        this.meinStift.drawCircle(15);
    }
 
    public void strichmaennchen2Loeschen(){
        this.meinStift.enableEraseMode(); //Radiermodus
        this.strichmaennchen2();  //Männchen im Radiermodus zeichen
        this.meinStift.enableDrawMode(); // ZUrück in den Malmodus
    }
 
    public void animation(){
        this.strichmaennchen1();
        this.meinFenster.delay(1000);  // 1000 Millisekunden (1s) warten
        this.strichmaennchen1Loeschen();
        this.strichmaennchen2();
        this.meinFenster.delay(1000);
        this.strichmaennchen2Loeschen();
        this.strichmaennchen1();
        this.meinFenster.delay(1000);
        this.strichmaennchen1Loeschen();
    }
}
  • de/jltk/intro2.txt
  • Zuletzt geändert: 2023/12/20 12:17
  • von jltk