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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
/**
* Wrapperklasse für einen Text auf der Zeichenfläche.
*
* @author Albert Wiedemann
* @version 1.0
*/
public class Text
{
/** x-Position der linken Seite der Grundlinie. */
private int x;
/** y-Position der Grundlinie. */
private int y;
/** Farbe des Textes. */
private String farbe;
/** Sichtbarkeit des Textes. */
private boolean sichtbar;
/** Drehwinkel (mathematisch positiver Drehsinn) des Textes in Grad. */
private int winkel;
/** Größe des Textes in Punkten. */
private int textgröße;
/** Referenz auf das Delegate-Objekt. */
private Zeichenfenster.TextIntern symbol;
/**
* Der Konstruktor erzeugt das Delegate-Objekt
*/
Text ()
{
x = 10;
y = 10;
farbe = "schwarz";
sichtbar = true;
winkel = 0;
textgröße = 12;
symbol = (Zeichenfenster.TextIntern) Zeichenfenster.SymbolErzeugen(Zeichenfenster.SymbolArt.text);
symbol.PositionSetzen(x, y);
symbol.FarbeSetzen(farbe);
symbol.SichtbarkeitSetzen(sichtbar);
symbol.WinkelSetzen(winkel);
symbol.TextGrößeSetzen(textgröße);
}
/**
* Setzt die Position (der Grundline) des Textes.
* @param x x-Position der linken Seite der Grundlinie
* @param y y-Position der Grundlinie
*/
void PositionSetzen(int x, int y)
{
this.x = x;
this.y = y;
symbol.PositionSetzen(x, y);
}
/**
* Setzt den aktuellen Text.
* @param text der neue Text
*/
void TextSetzen (String text)
{
symbol.TextSetzen(text);
}
/**
* Setzt die Größe des Textes.
* @param größe die (neue) Textgröße
*/
void TextGrößeSetzen (int größe)
{
textgröße = größe;
symbol.TextGrößeSetzen(größe);
}
/**
* Vergrößert den Text.
*/
void TextVergrößern()
{
symbol.TextVergrößern();
textgröße = (int) symbol.size;
}
/**
* Verkleinert den Text.
*/
void TextVerkleinern()
{
symbol.TextVerkleinern();
textgröße = (int) symbol.size;
}
/**
* Verschiebt den Text um die angegebenen Werte.
* @param deltaX Verschiebung in x-Richtung
* @param deltaY Verschiebung in y-Richtung
*/
void Verschieben(int deltaX, int deltaY)
{
x += deltaX;
y += deltaY;
symbol.PositionSetzen(x, y);
}
/**
* Dreht den Text
* @param grad Drehwinkel (mathematisch positiver Drehsinn) im Gradmass
*/
void Drehen(int grad)
{
winkel += grad;
symbol.WinkelSetzen(winkel);
}
/**
* Setzt die Farbe des Textes.
* Erlaubte Farben sind:
* "weiß", "weiss", "rot", "grün", "gruen", "blau", "gelb",
* "magenta", "cyan", "hellgelb", "hellgrün", "hellgruen",
* "orange", "braun", "grau", "schwarz"
* Alle anderen Eingaben werden auf die Farbe schwarz abgebildet.
* @param farbe (neue) Farbe
*/
void FarbeSetzen (String farbe)
{
this.farbe = farbe;
symbol.FarbeSetzen(farbe);
}
/**
* Setzt den Drehwinkel des Textes.
* Die Winkelangabe ist in Grad,positive Werte drehen gegen den Uhrzeigersinn,
* negative Werte drehen im Uhrzeigersinn (mathematisch positiver Drehsinn).
* @param winkel der (neue) Drehwinkel des Textes
*/
void WinkelSetzen (int winkel)
{
this.winkel = winkel;
symbol.WinkelSetzen(winkel);
}
/**
* Schaltet die Sichtbarkeit des Textes ein oder aus.
* Erlaubte Parameterwerte: true, false
* @param sichtbar (neue) Sichtbarkeit des Textes
*/
void SichtbarkeitSetzen (boolean sichtbar)
{
this.sichtbar = sichtbar;
symbol.SichtbarkeitSetzen(sichtbar);
}
/**
* Entfernt den Text aus dem Zeichenfenster.
*/
void Entfernen ()
{
symbol.Entfernen();
}
/**
* Bringt den Text eine Ebene nach vorn.
*/
void NachVornBringen ()
{
symbol.NachVornBringen();
}
/**
* Bringt den Text in die vorderste Ebene.
*/
void GanzNachVornBringen ()
{
symbol.GanzNachVornBringen();
}
/**
* Bringt den Text eine Ebene nach hinten.
*/
void NachHintenBringen ()
{
symbol.NachHintenBringen();
}
/**
* Bringt den Text in die hinterste Ebene.
*/
void GanzNachHintenBringen ()
{
symbol.GanzNachHintenBringen();
}
}
|