import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; /** Zeigt einen Text an. @author Felix Stupp @version 11.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(autoSize) { sx = tI.getWidth(); sy = tI.getHeight(); } GreenfootImage all = new GreenfootImage(sx,sy); all.setColor(backC); all.fill(); setImage(all); } }