From a1e62f825ee63f716c359a114817b9c2dacfad38 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 10 May 2016 18:29:54 +0200 Subject: [PATCH] GUI Klassen Version 0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unvollständige Variante der Klassen für Button und Label, zusätzlich noch die Oberklasse GUI_Interface. --- Button.java | 63 +++++++++++++++++++++++++++++++++++++++ ButtonEvent.java | 2 ++ GUI_Interface.java | 33 +++++++++++++++----- Label.java | 43 ++++++++++++++++++++++++++ images/Button_Corner.png | Bin 0 -> 173 bytes images/Button_Side.png | Bin 0 -> 164 bytes 6 files changed, 133 insertions(+), 8 deletions(-) create mode 100644 Label.java create mode 100644 images/Button_Corner.png create mode 100644 images/Button_Side.png diff --git a/Button.java b/Button.java index 676387b..da11981 100644 --- a/Button.java +++ b/Button.java @@ -8,6 +8,12 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class Button extends GUI_Interface { + boolean autoSize = true; + Color foreC = Color.WHITE + Color backC = Color.BLACK + int textSize = 1; + String text = ""; + ButtonEvent handler; /** @@ -28,4 +34,61 @@ public class Button extends GUI_Interface { } } + public boolean getAutoSize() { + return autoSize; + } + + public void setAutoSize(boolean b) { + autoSize = b; + if(autoSize) { + redraw(); + } + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); + int csx = corner.getWidth(); + int csy = corner.getHeight(); + GreenfootImage side = new GreenfootImage("images/Button_Side.png"); + if(autoSize) { + sx = tI.getWidth() + (csx * 2); + sy = tI.getHeight() + (csy * 2); + } + GreenfootImage all = new GreenfootImage(sx,sy); + all.drawImage(corner,0,0); + corner.rotate(90); + all.drawImage(corner,sx-csx,0); + corner.rotate(90); + all.drawImage(corner,sx-csx,sy-csy); + corner.rotate(90); + all.drawImage(corner,0,sy-csy); + for(int i = csx; i < (sx-csx+1); i++) { + + } + all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + setImage(all); + } } diff --git a/ButtonEvent.java b/ButtonEvent.java index 5265439..b3a914d 100644 --- a/ButtonEvent.java +++ b/ButtonEvent.java @@ -8,5 +8,7 @@ import greenfoot.*; * @version 26.04.2016 */ public interface ButtonEvent { + public void buttonClicked(Button obj); + } \ No newline at end of file diff --git a/GUI_Interface.java b/GUI_Interface.java index 60dc87a..69c48da 100644 --- a/GUI_Interface.java +++ b/GUI_Interface.java @@ -1,19 +1,36 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** - * Write a description of class GUI_Interface here. + * Oberklasse für sämtliche GUI Objekte, wie Labels und Buttons * - * @author (your name) - * @version (a version number or a date) + * @author Felix Stupp + * @version 10.05.2016 */ public class GUI_Interface extends Actor { - /** - * Act - do whatever the GUI_Interface wants to do. This method is called whenever - * the 'Act' or 'Run' button gets pressed in the environment. - */ + protected int sx = 1; + protected int sy = 1; + + public int getWidth() { + return sx; + } + + public int getHeight() { + return sy; + } + + public void setSize(int w, int h) { + if(w < 0 || h < 0) { + return; + } + sx = w; + sy = h; + } + public void act() { // Add your action code here. - } + } + + public abstract void redraw(); } diff --git a/Label.java b/Label.java new file mode 100644 index 0000000..37ef6c6 --- /dev/null +++ b/Label.java @@ -0,0 +1,43 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import System.awt.Color; + +/** + * Zeigt einen Text an. + * + * @author Felix Stupp + * @version 10.05.2016 + */ +public class Label extends GUI_Interface { + + Color foreC = Color.WHITE + Color backC = Color.BLACK + int textSize = 1; + String text = ""; + + private void redraw() { + GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); + setImage(tI); + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int s) { + if(textSize != s && s > 0) { + textSize = s; + redraw(); + } + } + + public String getText() { + return text; + } + + public void setText(String s) { + if(text != s) { + text = s; + redraw(); + } + } +} diff --git a/images/Button_Corner.png b/images/Button_Corner.png new file mode 100644 index 0000000000000000000000000000000000000000..937cca31107ae7650db5cd2e89fb5d892b7a26ab GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg0#LT=By}Z;C1rt33 zJVM%xNb!1@J z*w6hZkrl}2EbxddW?@k_E_DC^ literal 0 HcmV?d00001