public void paint(Graphics g) {
			Dimension size = getSize();
			Color bgColor = getBackground();

			if(bgColor != null) {
				g.setColor(bgColor);
				g.fillRect(0, 0, size.width, size.height);
			}

			if(useCustomImages) {
				Graphics2D g2 = (Graphics2D) g.create();
				BufferedImage image = getOrientation() == JSplitPane.HORIZONTAL_SPLIT ? verticalImage : horizontalImage;
				int width = image.getWidth();
				int height = image.getHeight();

				// Create a texture paint from the buffered image
				Rectangle r = new Rectangle(0, 0, width, height);
				if(tp == null) {
					tp = new TexturePaint(image, r);
				}

				if(getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
					g2.setPaint(tp);
					g2.fillRect(size.width / 2 - width / 2, 0, width, size.height);
				} else {
					g2.setPaint(tp);
					g2.fillRect(0, size.height / 2 - height / 2, size.width, height);
				}
			} else if(drawDelimitors) {
				// special case : custom integrated dots delimitors
				if(tp == null) {
					// Create a buffered image texture patch of size 5x5
					BufferedImage bi = new BufferedImage(4, 4, BufferedImage.TYPE_INT_RGB);
					Graphics2D big = bi.createGraphics();
					// Render into the BufferedImage graphics to create the texture
					big.setColor(getBackground());
					big.fillRect(0, 0, 4, 4);
					big.setColor(highlight);
					big.fillRect(1, 1, 1, 1);
					big.setColor(shadow);
					big.fillRect(2, 2, 1, 1);

					// Create a texture paint from the buffered image
					Rectangle r = new Rectangle(0, 0, 4, 4);
					tp = new TexturePaint(bi, r);
					big.dispose();
				}

				//      g.setColor(shadow);
				Graphics2D g2 = (Graphics2D) g.create();

				// Add the texture paint to the graphics context.
				g2.setPaint(tp);

				if(getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {

					g2.fillRect(size.width / 2 - 2, 0, 4, size.height);
				} else {
					g2.fillRect(0, size.height / 2 - 2, size.width, 4);
				}
			}

			//paintDragRectangle(g);
			super.paint(g);
		}