public String paint()
	{
		if (done) repaint();
		g.fillRect(0, 0, width, height); // Fill the picture with white
		long startTime = new Date().getTime();
		if (words.size() == 0)
		{
			return "No Keywords Found!";
		}

		int drawn = 0;
		setSize(); // Reset make is the size of the font

		if (update) observer.imageUpdate(img, ImageObserver.ALLBITS, 0, 0, width, height);
		
		for (int i = 0; i < max_num && i < words.size(); i++)
		{
			if (paintStr(i, i > 5 ? 2 : 0) == 0) break;
			drawn ++;
			System.out.println((i + 1 ) + " / " + words.size() + " done. Size: " + words.get(i).getSize());
		}		
		System.out.println("Paint Successful!");   
		long endTime = new Date().getTime();
		done = true;
		return drawn  + " drawn. \nTime used: " + (endTime - startTime) / 1000 + "." + (endTime - startTime) % 1000 + " s.";
	}