GUI Objekte verbessert

Button.redraw() vervollständigt
Fehlende Semikolonen hinzugefügt
4 Leerzeichen durch Tabs ersetzt (Verringerung der Dateigröße)
master
Zocker1999NET 10 years ago
parent a1e62f825e
commit 4ac3af0cbf

@ -8,87 +8,98 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
*/ */
public class Button extends GUI_Interface { public class Button extends GUI_Interface {
boolean autoSize = true; boolean autoSize = true;
Color foreC = Color.WHITE Color foreC = Color.WHITE;
Color backC = Color.BLACK Color backC = Color.BLACK;
int textSize = 1; int textSize = 1;
String text = ""; String text = "";
ButtonEvent handler; ButtonEvent handler;
/** /**
* Erstellt einen Button mit dem gegebenen Objekt als Event-Handler. * Erstellt einen Button mit dem gegebenen Objekt als Event-Handler.
* * @param h Der Handler mit dem Interface ButtonEvent implementiert.
* @param h Der Handler mit dem Interface ButtonEvent implementiert. */
*/ public Button(ButtonEvent h) {
public Button(ButtonEvent h) { handler = h;
handler = h; }
}
/** /**
* Fragt ab, ob ein Klick auf den Button gekommen ist. * Fragt ab, ob ein Klick auf den Button gekommen ist.
*/ */
public void act() { public void act() {
if(Greenfoot.mouseClicked(this)) { if(Greenfoot.mouseClicked(this)) {
handler.buttonClicked(this); handler.buttonClicked(this);
} }
} }
public boolean getAutoSize() { public boolean getAutoSize() {
return autoSize; return autoSize;
} }
public void setAutoSize(boolean b) { public void setAutoSize(boolean b) {
autoSize = b; autoSize = b;
if(autoSize) { if(autoSize) {
redraw(); redraw();
} }
} }
public int getTextSize() { public int getTextSize() {
return textSize; return textSize;
} }
public void setTextSize(int s) { public void setTextSize(int s) {
if(textSize != s && s > 0) { if(textSize != s && s > 0) {
textSize = s; textSize = s;
redraw(); redraw();
} }
} }
public String getText() { public String getText() {
return text; return text;
} }
public void setText(String s) { public void setText(String s) {
if(text != s) { if(text != s) {
text = s; text = s;
redraw(); redraw();
} }
} }
private void redraw() { private void redraw() {
GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC);
GreenfootImage corner = new GreenfootImage("images/Button_Corner.png"); GreenfootImage corner = new GreenfootImage("images/Button_Corner.png");
int csx = corner.getWidth(); int csx = corner.getWidth();
int csy = corner.getHeight(); int csy = corner.getHeight();
GreenfootImage side = new GreenfootImage("images/Button_Side.png"); GreenfootImage side = new GreenfootImage("images/Button_Side.png");
if(autoSize) { if(autoSize) {
sx = tI.getWidth() + (csx * 2); sx = tI.getWidth() + (csx * 2);
sy = tI.getHeight() + (csy * 2); sy = tI.getHeight() + (csy * 2);
} }
GreenfootImage all = new GreenfootImage(sx,sy); GreenfootImage all = new GreenfootImage(sx,sy);
all.drawImage(corner,0,0); all.drawImage(corner,0,0); // top left
corner.rotate(90); corner.rotate(90);
all.drawImage(corner,sx-csx,0); all.drawImage(corner,0,sy-csy); // bottom left
corner.rotate(90); corner.rotate(90);
all.drawImage(corner,sx-csx,sy-csy); all.drawImage(corner,sx-csx,sy-csy); // bottom right
corner.rotate(90); corner.rotate(90);
all.drawImage(corner,0,sy-csy); all.drawImage(corner,sx-csx,0); // top right
for(int i = csx; i < (sx-csx+1); i++) { for(int i = csx; i > (sx-csx); i++) {
all.drawImage(side,i,0); // top
} }
all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2); side.rotate(90);
setImage(all); for(int i = csy; i > (sy-csy); i++) { // left
} all.drawImage(side,0,i);
}
side.rotate(90);
for(int i = csx; i > (sx-csx); i++) { // bottom
all.drawImage(side,i,sy-csy);
}
for(int i = csy; i > (sy-csy); i++) {
all.drawImage(side,sx-csx,i); // right
}
side.rotate(90);
all.drawImage(tI,(sx-tI.getWidth())/2,(sy-tI.getHeight())/2);
setImage(all);
}
} }

@ -8,29 +8,30 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
*/ */
public class GUI_Interface extends Actor public class GUI_Interface extends Actor
{ {
protected int sx = 1; protected int sx = 1;
protected int sy = 1; protected int sy = 1;
public int getWidth() { public int getWidth() {
return sx; return sx;
} }
public int getHeight() { public int getHeight() {
return sy; return sy;
} }
public void setSize(int w, int h) { public void setSize(int w, int h) {
if(w < 0 || h < 0) { if(w < 0 || h < 0) {
return; return;
} }
sx = w; sx = w;
sy = h; sy = h;
} redraw();
}
public void act() public void act()
{ {
// Add your action code here. // Add your action code here.
} }
public abstract void redraw(); public abstract void redraw();
} }

@ -9,35 +9,35 @@ import System.awt.Color;
*/ */
public class Label extends GUI_Interface { public class Label extends GUI_Interface {
Color foreC = Color.WHITE Color foreC = Color.WHITE;
Color backC = Color.BLACK Color backC = Color.BLACK;
int textSize = 1; int textSize = 1;
String text = ""; String text = "";
private void redraw() { private void redraw() {
GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC); GreenfootImage tI = new GreenfootImage(text,textSize,foreC,backC);
setImage(tI); setImage(tI);
} }
public int getTextSize() { public int getTextSize() {
return textSize; return textSize;
} }
public void setTextSize(int s) { public void setTextSize(int s) {
if(textSize != s && s > 0) { if(textSize != s && s > 0) {
textSize = s; textSize = s;
redraw(); redraw();
} }
} }
public String getText() { public String getText() {
return text; return text;
} }
public void setText(String s) { public void setText(String s) {
if(text != s) { if(text != s) {
text = s; text = s;
redraw(); redraw();
} }
} }
} }

Loading…
Cancel
Save