-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathLabel.java
108 lines (100 loc) · 2.4 KB
/
Label.java
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
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color;
/**
Zeigt einen Text an.
@author Felix Stupp
@version 13.05.2016
*/
public class Label extends GUI_Interface {
private boolean autoSize = true;
private int textSize = 32; // as default text size
private String text = "";
/**
Erstellt ein neues Label mit dem gegebenen Text und der zugehörigen Textgröße.
@param txt Der darzustellende Text
@param size Die dazugehörige Textgröße
*/
public Label(String txt, int size) {
text = txt;
textSize = size;
redraw();
}
/**
Gibt zurück, ob die Größe des Buttons von dem Text bestimmt werden soll.
@return Wert der AutoSize-Eigenschaft
*/
public boolean getAutoSize() {
return autoSize;
}
/**
Legt fest, ob die Größe des Buttons von dem Text bestimmt werden soll.
Wird der Wert auf TRUE geändert, erfolgt automatisch ein Redraw des Objekts.
@param b Der neue Wert der AutoSize-Eigenschaft.
*/
public void setAutoSize(boolean b) {
autoSize = b;
if(autoSize) {
redraw();
}
}
/**
Gibt die aktelle Textgröße zurück.
@return Aktuelle Textgröße
*/
public int getTextSize() {
return textSize;
}
/**
Legt eine neue Textgröße fest.
@param s Neue Textgröße
@return Gibt an, ob sich die Textgröße geändert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setTextSize(int s) {
if(textSize != s && s > 0) {
textSize = s;
redraw();
return true;
}
return false;
}
/**
Gibt den aktuellen Text zurück.
@return Der aktuelle Text
*/
public String getText() {
return text;
}
/**
Setzt den darzustellenden Text auf den neuen Wert.
@param s Der neue Text
@return Gibt an, ob sich der Text geändert hat. Bei TRUE erfolgte bereits ein Redraw.
*/
public boolean setText(String s) {
if(text != s) {
text = s;
redraw();
return true;
}
return false;
}
/**
Zeichnet das GreenfootImage des Labels erneut und zeigt es an.
*/
public void redraw() {
GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC);
if(text == "") {
tI = new GreenfootImage(1,1);
tI.setColor(new Color(0,0,0,0));
tI.fill();
}
if(autoSize) {
sx = tI.getWidth();
sy = tI.getHeight();
}
GreenfootImage all = new GreenfootImage(sx,sy);
all.setColor(backC);
all.fill();
all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2);
setImage(all);
}
}