From dd08706ed6a17225ddb4396581c4007c782ef6fd Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Thu, 12 May 2016 17:32:43 +0200 Subject: [PATCH] =?UTF-8?q?Button=20Zeichnung=20angepasst=20Der=20Button?= =?UTF-8?q?=20ist=20nun=20in=20der=20Lage,=20sich=20selbst=20ohne=20Grafik?= =?UTF-8?q?en=20zu=20zeichnen,=20da=20der=20Einsatz=20dieser=20Grafiken=20?= =?UTF-8?q?nicht=20mit=20Erfolg=20verlief.=20In=20der=20Utils=20Klasse=20w?= =?UTF-8?q?urde=20dazu=20auch=20eine=20neue=20Funktion=20hinzugef=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Button.java | 43 ++++++++++++------------------------------- Utils.java | 8 ++++++++ 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/Button.java b/Button.java index ff18971..cd29f19 100644 --- a/Button.java +++ b/Button.java @@ -144,40 +144,21 @@ public class Button extends GUI_Interface { */ public void redraw() { GreenfootImage tI = new GreenfootImage(text,textSize,textC,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) + 4; - sy = tI.getHeight() + (csy * 2) + 4; + sx = tI.getWidth() + (6 * 2) + 4; + sy = tI.getHeight() + (6 * 2) + 4; } GreenfootImage all = new GreenfootImage(sx,sy); - all.setColor(backC); - all.fill(); - all.drawImage(corner,0,0); // top left - corner.rotate(90); - all.drawImage(corner,sx-csx,0); // top right - corner.rotate(90); - all.drawImage(corner,sx-csx,sy-csy); // bottom right - corner.rotate(90); - all.drawImage(corner,0,sy-csy); // bottom left - for(int i = csx; i > (sx-csx); i++) { - all.drawImage(side,i,0); // top - } - side.rotate(90); - for(int i = csy; i > (sy-csy); i++) { - all.drawImage(side,sx-csx,i); // right - } - side.rotate(90); - for(int i = csx; i > (sx-csx); i++) { // bottom - all.drawImage(side,i,sy-csy); - } - side.rotate(90); - for(int i = csy; i > (sy-csy); i++) { // left - all.drawImage(side,0,i); - } - all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); + Color gray = new Color(127,127,127,255); + Utils.drawInsideRectangle(all,gray,0); + Utils.drawInsideRectangle(all,backC,2); + Utils.drawInsideRectangle(all,gray,6); + Utils.drawInsideRectangle(all,backC,7); + all.setColor(new Color(0,0,0,0)); + all.fillRect(0,0,1,1); + all.fillRect(sx-1,0,1,1); + all.fillRect(0,sy-1,1,1); + all.fillRect(sx-1,sy-1,1,1); setImage(all); } } diff --git a/Utils.java b/Utils.java index bdbeffd..4063252 100644 --- a/Utils.java +++ b/Utils.java @@ -1,4 +1,5 @@ import greenfoot.*; +import System.awt.Color; /** * Diese Klasse enthält nur statische Funktionen, welche für euch als Unterstützung gedacht sind. Damit könnt ihr dann hoffentlich viele Code-Zeilen sparen. :) @@ -31,4 +32,11 @@ public final class Utils { return b; } + public static void drawInsideRectangle(GreenfootImage i, Color c, int b) { + int sx = i.getWidth(); + int sy = i.getHeight(); + i.setColor(c); + i.fillRect(b,b,sx-(2*b),sy-(2*b)); + } + }