public void setUpText(String text, MinuetoFont font, MinuetoColor color, boolean antiAliased) {
	
		/* The hardest part of build the image with the text string is 
		 * figuring out the size of the string itself. **/
		
		if (text == null) new NullPointerException();
		if (font == null) new NullPointerException();
		if (color == null) new NullPointerException();
		
		BufferedImage bufferedImage;
		Graphics2D graphics2D;
		FontMetrics fontMetrics;
						
		int width;		/* Width of our image */
		int height;	/* Height of our image */
   		
		/* To calculate the size of the string, we need to get information
		 * about the screen (since the string size depends on the DPI 
		 * resolution of the monitor). To get this information, we create
		 * a temporary 1x1 accelerated image and get the font metric
		 * information from the graphic 2D image. */
		bufferedImage = ImageTools.createImage( 1, 1 );
		graphics2D = bufferedImage.createGraphics();
	
		/* Before getting the font metric, we need to set the font on the
		 * grpahic 2D object. */
   		graphics2D.setFont(font.getFont());
			
			/* Enable or disable antialiasing. */
   		if (antiAliased == true) {
   			graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                             RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
   		} else {
				graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                             RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
			}
   		
		/* Ah! now we have the font metrics! */
   		fontMetrics = graphics2D.getFontMetrics();   		
   		   		
		/* It might seem simple, but figuring out that these 2 functions exist
		 * was insanely hard. The Java font engine can be quite complicated. */
   		height = fontMetrics.getHeight();
   		width = fontMetrics.stringWidth(text);
   		
   		/* Since we should never create an image of width 0. */
   		if (width == 0) { width = 1; }
   		
		/* So now we know the proper size of the image. */
		bufferedImage = ImageTools.createImage( width, height );
   		graphics2D = bufferedImage.createGraphics();
	
		/* Set the font and the color. */
   		graphics2D.setFont(font.getFont());
   		graphics2D.setColor(color.getAWTColor());
   		
   		/* Enable or disable antialiasing. */
   		if (antiAliased == true) {
   			graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                             RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
   		} else {
				graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                             RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
			}
   		
   	   	
		/* Draw the string on the buffer. */
		graphics2D.drawString(text, 0, fontMetrics.getAscent());
   	   	
		/* Set up the MinuetoImage */
   	super.setUpImage(bufferedImage);
	}