private void paintStripedBackground(Graphics g, int borderY) {
		// get the row index at the top of the clip bounds (the first row
		// to paint).
		Rectangle clip = g.getClipBounds();
		Point viewPosition = fViewport.getViewPosition();
		int rowAtPoint = fTable.rowAtPoint(viewPosition);
		// get the y coordinate of the first row to paint. if there are no
		// rows in the table, start painting at the top of the supplied
		// clipping bounds.
		int topY = rowAtPoint < 0 ? borderY : fTable.getCellRect(rowAtPoint, 0,
				true).y - viewPosition.y + borderY;
		// create a counter variable to hold the current row. if there are no
		// rows in the table, start the counter at 0.
		int currentRow = rowAtPoint < 0 ? 0 : rowAtPoint;
		int rowHeight = fTable.getRowHeight();
		Border border = null;
		if (fTable.getUI() instanceof ITunesTableUI) {
			ITunesTableUI ui = (ITunesTableUI) fTable.getUI();
			border = ui.getSelectedRowBorder();
		}
		while (topY < clip.y + clip.height) {
			int bottomY = topY + rowHeight;
			g.setColor(getRowColor(currentRow));
			g.fillRect(clip.x, topY, clip.width, rowHeight);
			if (border != null && fTable.isRowSelected(currentRow)) {
				border.paintBorder(fViewport, g, 0, topY, fViewport.getWidth(),
						fTable.getRowHeight());
			}
			topY = bottomY;
			currentRow++;
		}
	}