public void paint(java.awt.Graphics g) {

		super.paint(g);
       
		int fillX = 0;
		int fillY = 0;
        int w = getWidth();
        int h = getHeight();

		FontInfo fi = getFontInfo();
		int round = ((fi.decoration & FontInfo.ROUND) != 0) ? 1 : 0;
		
		if((fi.decoration & FontInfo.SHADOW) != 0){
			g.setColor(fi.shadow);
			g.drawLine(2+round, h-1, w-1-round, h-1);
			g.drawLine(w-1, 2+round, w-1, h-1-round);
			g.drawLine(w-1-round, h-1-round, w-1-round, h-1-round);
			w--;
			h--;
		}
		
		int fillW = w;
		int fillH = h;
		
		if((fi.decoration & FontInfo.BORDER) != 0){
			g.setColor(fi.border);
			if((fi.decoration & FontInfo.LEFT) != 0){
				g.drawLine(0, round, 0, h-round-1);
				fillX++;
				fillW--;
			}
			if((fi.decoration & FontInfo.RIGHT) != 0) {
				g.drawLine(w-1, round, w-1, h-round-1);
				fillW--;
			}
			if((fi.decoration & FontInfo.TOP) != 0){
				g.drawLine(round, 0, w-round-1, 0);
				fillY++;
				fillH--;
			}
			if((fi.decoration & FontInfo.BOTTOM) != 0){
				g.drawLine(round, h-1, w-round-1, h-1);
				fillH--;
			}
		}
		
		if(fi.background != null && (fi.decoration & FontInfo.COMPACT) == 0){
			g.setColor(fi.background);
			g.fillRect(fillX, fillY, fillW, fillH);			
		}
		
		g.setColor(fi.foreground);
    }