public static void createIcons() {
		// Get the colors to use
		Color c = Preferences.getPreferenceColor(Preferences.TEXTAREA_FOREGROUND_COLOR).cur;
		int hexColor = ((c.getRed() << 16) | (c.getGreen() << 8) | c.getBlue());
		
		Color c2 = Preferences.getPreferenceColor(Preferences.TEXTAREA_BACKGROUND_COLOR).cur;
		int hexColor2 = ((c2.getRed() << 16) | (c2.getGreen() << 8) | c2.getBlue());
		
		// Transfer the image from the ImageIcon to a Graphics2D so we can manipulate it.
		Image closedImage = ICON_CLOSED_NODE.getImage();
		
		BufferedImage image = new BufferedImage(BUTTON_WIDTH, BUTTON_HEIGHT, BufferedImage.TYPE_INT_ARGB);
		Graphics2D g = image.createGraphics();
		g.drawImage(closedImage,0,0,Outliner.outliner);
		
		// Create a buffered image from the closed node image.
		RGBImageFilter colorFilter = ImageFilters.getFillFilter(hexColor);
		FilteredImageSource source = new FilteredImageSource(image.getSource(), colorFilter);
		Image closedImage2 = Outliner.outliner.createImage(source);
		
		ICON_CLOSED_NODE.setImage(closedImage2);
		
		// Re-Apply the new image to the Graphics2D so the other images can work from the colored image.
		g.drawImage(closedImage2,0,0,Outliner.outliner);
		
		// Create Buffered Image for the derived images.
		BufferedImage openImage = new BufferedImage(BUTTON_WIDTH, BUTTON_HEIGHT, image.getType());
		
		// Define a transforamtion to rotate the closed image to create the open image.
		AffineTransformOp at = new AffineTransformOp(AffineTransform.getRotateInstance((java.lang.Math.PI)/2, BUTTON_WIDTH/2, BUTTON_HEIGHT/2), AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
		at.filter(image, openImage);
		
		ICON_OPEN_NODE.setImage(openImage);
		
		// Lighten color to create leaf
		RGBImageFilter lightenFilter = ImageFilters.getLightenFilter(0x00999999);
		FilteredImageSource leafSource = new FilteredImageSource(image.getSource(), lightenFilter);
		Image leafImage = Outliner.outliner.createImage(leafSource);
		
		ICON_LEAF.setImage(leafImage);
		
		// Lighten color for selected leaf
		RGBImageFilter lightenFilter2 = ImageFilters.getLightenFilter(0x00333333);
		FilteredImageSource leafSelectedSource = new FilteredImageSource(leafImage.getSource(), lightenFilter2);
		Image leafSelectedImage = Outliner.outliner.createImage(leafSelectedSource);
		
		ICON_LEAF_SELECTED.setImage(leafSelectedImage);
		
		// Fill with the background color for selected images
		RGBImageFilter fillFilter = ImageFilters.getFillFilter(hexColor2);
		FilteredImageSource openSource = new FilteredImageSource(openImage.getSource(), fillFilter);
		FilteredImageSource closedSource = new FilteredImageSource(image.getSource(), fillFilter);
		Image openSelectedImage = Outliner.outliner.createImage(openSource);
		Image closedSelectedImage = Outliner.outliner.createImage(closedSource);
		
		ICON_OPEN_NODE_SELECTED.setImage(openSelectedImage);
		ICON_CLOSED_NODE_SELECTED.setImage(closedSelectedImage);
	}