@Override
	public void draw(Graphics g) {
	
	int width = getWidth();
	int height = getHeight();
	
	if (width == -1 || height == -1)
	return;
	
	g.setClip(getRealX(), getRealY(), width, height);
	
	if (this.hasBackground())
	g.setColor(getBackground());
	else
	g.setColor(Color.darkGray);
	
	g.fillRect(getRealX(), getRealY(), width, height);
	
	if (this.hasBorder())
	g.setColor(getBorder().getColor());
	else
	g.setColor(new Color(150,150,150));
	
	g.drawRect(getRealX(), getRealY(), width-1, height-1);
	
	if (hasText()) {
	
	g.setColor(getTextColor());
	
	int x = getRealX() , y = getRealY();
	
	if (isTextCenteredX()) {
	x -= g.getFont().getWidth(getDisplayText())/2;
	
	if (hasWidth())
	x += getWidth()/2;
	}
	
	if (isTextCenteredY()) {
	y -= g.getFont().getHeight(getDisplayText())/2;
	
	if (hasHeight())
	y += getHeight()/2;
	}
	
	g.drawString(getDisplayText(), x, y);
	
	}
	
	g.clearClip();
	
	}