JOptionPane não funciona em laço while

Gente, podem me explicar por que o JOptionPane não funciona no laço while?

		while(true)
		{
			color = Bot.getPixelColor(601, 357);
			if(color.getRed() != 255)
			{
				JOptionPane.showMessageDialog(null, "The game has started!", "Notice!", JOptionPane.INFORMATION_MESSAGE);
				break;
			}
			Thread.sleep(500);
		}

Agora, se ele está assim:

		while(true)
		{
			color = Bot.getPixelColor(601, 357);
			if(color.getRed() != 255)
			{
				System.out.println("Foda-se essa merda, vou ser hippie!");
			}
			Thread.sleep(500);
		}

o println funciona. isso mostra que o problema é no joptionpane
Como fazê-lo funcionar?

Agradeço qualquer ajuda desde já.
Valeu, gente.

Estranho…a princípio deveria funcionar…
Algumas coisas que podem estar acontecendo…

  1. Seu JOptionPane pode estar aparecendo atras da janela atual… para resolver, tenta vincular ele a tela atual que está chamando ele…(primeiro argumento dele…em vez de null, coloca o argumento )
    2)Pode ser que nunca está sendo setada color.getRed() diferente de 255
  2. caso ele esteja funcionando somente uma vez é porque colocou um break na sua implementação após o JOptionPane

Bah, ele está aparecendo atrás da tela mesmo!
Se eu não uso nenhum Frame, como faço para ele aparecer à frente de quaisquer aplicações do usuário?