Como fazer o programa esperar

Galera alguem poderia me ajudar.
Preciso fazer com que meu programa espere o usuario preencher um formulario e so continuar a execução se for pressionado um botao.
Ja tentei com if e com while.
Desde ja agradeço

Você está tentando fazer com Java Swing?

Sim. Pegando arquivos de um JTextField.
Quero esperar o usuario digitar o valor da variavel, quando digitar apertar o botão e aí sim a variável receber valor.

Implementa o padrão de projeto Observer, também chamado de Listener.

Boa noite @Marcos_Aurelio_M , como disse o @staroski, use um listener na ação do botão , mas como disse “pegar arquivos de um JTextField”, se o objetivo é abrir um ficheiro, o melhor é utilizar um JFileChooser invés do JTextField.

Em ambos os casos é só adaptar o código abaixo para o que lhe der mais jeito.

final JFileChooser fc = new JFileChooser();
JButton button = new JButton("Adicionar Ficheiro");

button.addActionListener(new ActionListener() {
      @Override
       public void actionPerformed(ActionEvent e){

         // Ação do botão -> abra o dialogo para escolha do ficheiro
         int returnVal = fc.showOpenDialog(ONomeDaClass.this);

         if (returnVal == JFileChooser.APPROVE_OPTION) {
          File file = fc.getSelectedFile();
          // Aqui pode abrir o ficheiro
          System.out.println("Ficheiro: " + file.getName());
         } else {
          System.err.println("O utilizador fechou a janela de dialogo sem escolher um ficheiro!");
         }
       }
 }

Caso queira o valor do campo de texto, use o método getText();

String valor = jTextField.getText();

Caso queira só mostrar um botão continuar, após o utilizador ter preenchido o campo de texto, pode usar o exemplo abaixo.

String valor;

JTextField textField = new JTextField();
JButton continueButton = new JButton("Continuar");
continueButton.setEnabled(false);

textField.addKeyListener(new KeyAdapter() {
   public void keyReleased(KeyEvent e) {
     JTextField textField = (JTextField) e.getSource();

      // Só habilita o botão caso tenha texto
      if(textField.getText().trim().length() > 0){
        // Assina o valor do campo à variável
        valor = tectField.getText();

        // Mostra o botão continuar
        continueButton.setEnabled(true);
      }
   }

   public void keyTyped(KeyEvent e) {}

   public void keyPressed(KeyEvent e) {}
});