protected void paintComponent(Graphics g) {
		int c1 = (this.disabled ? COLOR_STATE_DISABLED : ((this.hovered || this.grabFlags != GRABBING_NONE) ? COLOR_STATE_HOVER : COLOR_STATE_NORMAL));
		int c2 = (this.disabled ? COLOR_STATE_DISABLED : COLOR_STATE_DEPRESSED);

		// Regions
		Rectangle rect = this.getRegionBounds();
		Rectangle left = this.getLeftGrab();
		Rectangle right = this.getRightGrab();

		// Backgrounds
		g.setColor(this.colors.background[c1]);
		g.fillRect(rect.x, rect.y, rect.width, rect.height);

		g.setColor(this.colors.grabbers[this.grabFlags == GRABBING_LEFT ? c2 : c1]);
		g.fillRect(left.x, left.y, left.width, left.height);
		g.setColor(this.colors.grabbers[this.grabFlags == GRABBING_RIGHT ? c2 : c1]);
		g.fillRect(right.x, right.y, right.width, right.height);

		g.setColor(this.colors.bar[this.grabFlags == GRABBING_MIDDLE ? c2 : c1]);
		g.fillRect(left.x + left.width, left.y, right.x - (left.x + left.width), left.height);

		// Outer border
		g.setColor(this.colors.borderLight[c1]);
		g.drawLine(rect.x, rect.y, rect.x + rect.width - 1, rect.y);
		g.drawLine(rect.x, rect.y, rect.x, rect.y + rect.height - 1);
		g.setColor(this.colors.borderDark[c1]);
		g.drawLine(rect.x, rect.y + rect.height - 1, rect.x + rect.width - 1, rect.y + rect.height - 1);
		g.drawLine(rect.x + rect.width - 1, rect.y, rect.x + rect.width - 1, rect.y + rect.height - 1);

		// Separators
		g.setColor(this.colors.barBorderLight[c1]);
		g.drawLine(right.x - 1, rect.y, right.x - 1, rect.y + rect.height - 1);
		g.setColor(this.colors.barBorderDark[c1]);
		g.drawLine(left.x + left.width, rect.y, left.x + left.width, rect.y + rect.height - 1);

		// Bar border
		g.setColor(this.colors.barBorderLight[c1]);
		g.drawLine(left.x, rect.y, right.x + right.width, rect.y);
		g.drawLine(left.x - 1, rect.y, left.x - 1, rect.y + rect.height - 1);
		g.setColor(this.colors.barBorderDark[c1]);
		g.drawLine(left.x, rect.y + rect.height - 1, right.x + right.width, rect.y + rect.height - 1);
		g.drawLine(right.x + right.width, rect.y, right.x + right.width, rect.y + rect.height - 1);
	}