Button Zeichnung angepasst

Der Button ist nun in der Lage, sich selbst ohne Grafiken zu zeichnen, da der Einsatz dieser Grafiken nicht mit Erfolg verlief.
In der Utils Klasse wurde dazu auch eine neue Funktion hinzugefügt.
master
Felix Stupp 10 years ago
parent 3a9f7c9bec
commit dd08706ed6

@ -144,40 +144,21 @@ public class Button extends GUI_Interface {
*/ */
public void redraw() { public void redraw() {
GreenfootImage tI = new GreenfootImage(text,textSize,textC,backC); 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) { if(autoSize) {
sx = tI.getWidth() + (csx * 2) + 4; sx = tI.getWidth() + (6 * 2) + 4;
sy = tI.getHeight() + (csy * 2) + 4; sy = tI.getHeight() + (6 * 2) + 4;
} }
GreenfootImage all = new GreenfootImage(sx,sy); GreenfootImage all = new GreenfootImage(sx,sy);
all.setColor(backC); Color gray = new Color(127,127,127,255);
all.fill(); Utils.drawInsideRectangle(all,gray,0);
all.drawImage(corner,0,0); // top left Utils.drawInsideRectangle(all,backC,2);
corner.rotate(90); Utils.drawInsideRectangle(all,gray,6);
all.drawImage(corner,sx-csx,0); // top right Utils.drawInsideRectangle(all,backC,7);
corner.rotate(90); all.setColor(new Color(0,0,0,0));
all.drawImage(corner,sx-csx,sy-csy); // bottom right all.fillRect(0,0,1,1);
corner.rotate(90); all.fillRect(sx-1,0,1,1);
all.drawImage(corner,0,sy-csy); // bottom left all.fillRect(0,sy-1,1,1);
for(int i = csx; i > (sx-csx); i++) { all.fillRect(sx-1,sy-1,1,1);
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);
setImage(all); setImage(all);
} }
} }

@ -1,4 +1,5 @@
import greenfoot.*; 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. :) * 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; 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));
}
} }

Loading…
Cancel
Save