@Override
	protected void paintComponent(Graphics gc) {
		Insets insets = getInsets();
		int x = insets.left;
		int y = insets.top;
		int width = getWidth() - (insets.left + insets.right);
		int height = getHeight() - (insets.top + insets.bottom);
		StdImage icon = mIcon;
		if (isEnabled()) {
			if (mInMouseDown && mPressed) {
				gc.setColor(Colors.adjustBrightness(getBackground(), -0.2f));
				gc.fillRect(x, y, width, height);
			}
			if (mShowBorder || mInMouseDown) {
				gc.setColor(Colors.adjustBrightness(getBackground(), -0.4f));
				gc.drawRect(x, y, width - 1, height - 1);
			}
		} else {
			icon = StdImage.createDisabledImage(icon);
		}
		icon.paintIcon(this, gc, x + (width - icon.getIconWidth()) / 2, y + (height - icon.getIconHeight()) / 2);
	}