Pausar aplicação até receber resposta

Possuo uma interface simples composta por uma JTextField e um JButton.
Gostaria de fazer com que minha aplicação fosse pausada até que o usuário insira alguma informação no TextField e clique no bottão.
Por exemplo minha classe possui um atributo message com o texto recebido da TextField após ser clicado no botão, sempre que fosse solicitado ao usuário de digitar algo esse atributo fosse apagado e seja solicitado outro, seria algo assim:

public static String getMessage() { message = null; while(message == null) { //Fazer a aplicação esperar até que o novo texto seja inserido no TextField e o usuário clicar no botão } return message; }

É isso, espero ter conseguido ser claro, ainda sou um pouco novo com Java…
Obrigado

O sleep não pode resolver?

Thread.sleep(500); 

existem algumas formas de fazer isso…

uma opçao seria verificar se voce realmente precisa pausar a aplicação ou se utilizar algum tipo de evento seria a melhor alternativa.
no seu caso acho que o ideal seria colocar um action event no botao e disparar a sua logica daí.

se realmente precisar pausar a aplicacao… utilize a combinação wait() e notify().

referencias:
http://download.oracle.com/javase/tutorial/uiswing/components/button.html
http://www.javamex.com/tutorials/synchronization_wait_notify.shtml

Oi,

Quer validar dados de entrada?

Então… :roll: Se for,isso ajudara…

/* Codifique a classe em Java que 
 * contenha um metodo chamado bagunssaNaString() que 
 * deverá ler uma string não nula e não vazia via JOP;
 * escrever a string original e o tamanho da string;
 * mostrar o primeiro caracter e o segundo caracter da string;
 * Deverá retornar a string lida modificada com o primeiro caracter trocado 
 * com o segundo caracter para o método main() que deverá escreve-la.
 * Exemplo:
 *	string digitada: chicorea
 *  string retornada: hcicorea

 */


import javax.swing.*;
class Metodo7
{
	public static String bagunssaNaString()
	{
		String s="", s_aux="";
		do
		{
			s = JOptionPane.showInputDialog( null, "Digite um literal: " , 
												"Leitura do Literal" , JOptionPane.QUESTION_MESSAGE );
		} while ( s == null || s.equals("")); // nao poderá cancelar
		JOptionPane.showMessageDialog( null, "String original: " + s + "\nTamanho da string: " 
		                                + s.length() , "Resultado" , JOptionPane.INFORMATION_MESSAGE);
		JOptionPane.showMessageDialog( null, "Primeiro caracter: " + s.charAt(0) + "\nSegundo caracter: " 
				              + s.charAt(1),"Resultado" , JOptionPane.INFORMATION_MESSAGE);
	    s_aux = s_aux + s.charAt(1) + s.charAt(0) + s.substring(2,s.length()) ;
		
		return s_aux; // retorna a string lida para o metodo que chamou
	}
	public static void main(String args[])
	{
		
		String s;
		
		s = bagunssaNaString();
		JOptionPane.showMessageDialog( null, "String lida: " + s  , "Resultado" , 
																		JOptionPane.INFORMATION_MESSAGE);
	}
}