aboutsummaryrefslogtreecommitdiff
path: root/Info/10/2/Baelle/BlueJ_Projekt/Ereignisbehandlung.java
blob: 5f2ab8444209608c9177483744005f5a4caedea8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

/**
 * Zugriff auf die Ereignisse einschließlich Taktgeber.
 * 
 * @author Albert Wiedemann
 * @version 1.0
 */
public class Ereignisbehandlung
{
    /**
     * Der Konstruktor meldet den Taktgeber
     * und die Eventlistener bei der Zeichenfläche an.
     */
    Ereignisbehandlung ()
    {
        Zeichenfenster.AktionsEmpfängerEintragen(new Zeichenfenster.AktionsEmpfaenger()
        {
            public void Ausführen ()
            {
                TaktImpulsAusführen();
            }
            
            public void Taste (char taste)
            {
                TasteGedrückt(taste);
            }
            
            public void SonderTaste (int taste)
            {
                SonderTasteGedrückt(taste);
            }
            
            public void Geklickt (int x, int y, int anzahl)
            {
                MausGeklickt(x, y, anzahl);
            }
        });
    }
    
    /**
     * Die eigentliche Aktionsmethode des Zeitgebers.
     * <br>Muss bei Bedarf von einer Unterklasse überschrieben werden. 
     */
    void TaktImpulsAusführen ()
    {
        System.out.println ("Tick");
    }

    /**
     * Zeitgeber starten.
     */
    void Starten ()
    {
        Zeichenfenster.TaktgeberStarten();
    }

    /**
     * Zeitgeber anhalten.
     */
    void Anhalten ()
    {
        Zeichenfenster.TaktgeberStoppen();
    }
    
    /**
     * Ablaufgeschwindigkeit des Zeitgebers einstellen.
     * 
     * @param dauer: Angabe in Millisekunden
     */
    void TaktdauerSetzen (int dauer)
    {
        Zeichenfenster.TaktdauerSetzen(dauer);
    }
    
    /**
     * Die eigentliche Aktionsmethode für gedrückte Tasten.
     * <br>Muss bei Bedarf von einer Unterklasse überschrieben werden. 
     * @param taste die gedrückte Taste
     */
    void TasteGedrückt (char taste)
    {
        System. out. println ("Taste: " + taste);
    }
    
    /**
     * Die eigentliche Aktionsmethode für gedrückte Sondertasten.
     * <br>Muss bei Bedarf von einer Unterklasse überschrieben werden. 
     * @param taste KeyCode der gedrückten Taste
     */
    void SonderTasteGedrückt (int taste)
    {
        System. out. println ("Sondertaste: " + taste);
    }
    
    /**
     * Die eigentliche Aktionsmethode für einen Mausklick.
     * <br>Muss bei Bedarf von einer Unterklasse überschrieben werden. 
     * @param x x-Position des Mausklicks
     * @param y y-Position des Mausklicks
     * @param anzahl Anzahl der aufeinanderfolgenden Mausklicks
     */
    void MausGeklickt (int x, int y, int anzahl)
    {
        System. out. println ("Maus: (" + x + "|" + y + "), " + anzahl + " mal");
    }
}