import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.awt.Color; /** Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons @author Felix Stupp @version 04.06.2016 */ public abstract class GUI_Interface extends Actor { /** Die Breite des Objektes */ protected int sx = 20; /** Die Höhe des Objektes */ protected int sy = 20; /** Die Hintergrundfarbe des Objektes */ protected Color backC = Color.BLACK; /** Die Vordergrundfarbe (meist die Textfarbe) des Objektes */ protected Color foreC = Color.WHITE; /** Gibt die Breite des Objektes zurück. @return Die aktuelle Breite */ public int getWidth() { return sx; } /** Gibt die Höhe des Objektes zurück. @return Die aktuelle Höhe */ public int getHeight() { return sy; } /** Legt die Größe des Objektes neu fest und zeichnet es danach damit neu. Je nach Objekttyp kann diese Größe wieder vom Objekt selbst angepasst werden, falls nötig. @param w Die neue Breite @param h Die neue Höhe */ public void setSize(int w, int h) { if(w < 1 || h < 1) { return; } sx = w; sy = h; redraw(); } /** Gibt die aktuelle Hintergrundfarbe des Objektes zurück. @return Die aktuelle Hintergrundfarbe als System.awt.Color */ public Color getBackColor() { return backC; } /** Legt die Hintergrundfarbe des Objektes fest. @param c Die neue Hintergrundfarbe als System.awt.Color @return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw. */ public boolean setBackColor(Color c) { if(!c.equals(backC)) { backC = c; redraw(); return true; } return false; } /** Gibt die aktuelle Vordergrundfarbe (meist die Textfarbe) des Objektes zurück. @return Die aktuelle Vordergrundfarbe als System.awt.Color */ public Color getForeColor() { return foreC; } /** Legt die Vordergrundfarbe (meist die Textfarbe) des Objektes fest. @param c Die neue Vordergrundfarbe als System.awt.Color @return Gibt an, ob diese Farbe unterschiedlich zur bisherig genutzten Farbe wahr. Bei TRUE erfolgte bereits ein Redraw. */ public boolean setForeColor(Color c) { if(!c.equals(foreC)) { foreC = c; redraw(); return true; } return false; } public void act() {} /** Diese Funktion soll die erneute Zeichnung des Objekts erzwingen und wird daher auch von (fast) allen set-Methoden aufgerufen, sollte der neue Wert sich von dem alten unterscheiden. */ public abstract void redraw(); }