@Override
    public void paintComponent(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;

        //Se estiver desativo
        if( !isEnabled() ){
            g2d.setColor( backgroundUnable );
        }
        //Se estiver sendo pressionado
        else if (isPressed && backgroundPressed != null){
            g2d.setColor( backgroundPressed );
        }
        //Se estiver normal!
        else {
            g2d.setPaint(paintColor);
        }
        g2d.fillRoundRect(0, 0, getWidth() - 1, getHeight() - 1, 5, 5);

        //Desenha a borda do botão

        if (!isEnabled()) {
            g2d.setColor(borderUnable);
        } else {
            g2d.setColor(borderNormal);
        }
        g2d.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, 5, 5);

        //Se o mouse estiver em cima
        /*
        if (isOver || isDefaultButton()) {
            g2d.setColor(borderUnable);
            g2d.drawRoundRect(1, 1, getWidth() - 3, getHeight() - 3, 5, 5);
        }
        */

        //Escreve o texto centralizado
        if(!isEnabled()) {
            g2d.setColor( foregroundUnable );
        } else if (isOver && foregroundOver != null) {
            g2d.setColor(foregroundOver);
        } else {
            g2d.setColor( foregroundNormal );
        }

        Font f = getFont();
        if (f != null) {
            FontMetrics fm = getFontMetrics(getFont());
            g2d.drawString( getText(), getWidth() / 2 - fm.stringWidth( getText()) / 2, getHeight() / 2 + (fm.getMaxAscent() - fm.getMaxDescent()) / 2);
        }

        if (getIcon() != null) {
            getIcon().paintIcon(this, g2d, getWidth() / 2 - getIcon().getIconWidth()/ 2,
                    getHeight() / 2 - getIcon().getIconHeight()/ 2);
        }
    }