@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		int hScroll = mHSB.getValue();
		if (mHeaderBounds.height > 0) {
			Graphics2D gc = (Graphics2D) g.create();
			try {
				gc.clipRect(mHeaderBounds.x, mHeaderBounds.y, mHeaderBounds.width, mHeaderBounds.height);
				gc.translate(mHeaderBounds.x - hScroll, mHeaderBounds.y);
				drawHeader(gc);
			} finally {
				gc.dispose();
			}
		}
		Graphics2D gc = (Graphics2D) g.create();
		try {
			gc.clipRect(mContentBounds.x, mContentBounds.y, mContentBounds.width, mContentBounds.height);
			gc.translate(mContentBounds.x - hScroll, mContentBounds.y - mVSB.getValue());
			drawContents(gc);
		} finally {
			gc.dispose();
		}
	}