Como fazer um loop com while no JOptionPane.showInputDialog

Basicamente, este é meu código:

package AprendendoJanelas;

import java.util.Scanner;

import javax.swing.JOptionPane;

public class teste2 {

public static void main(String[]args) {
   Scanner scan = new Scanner(System.in);
	//Crie um programa que dê janelas para o usuário escolher entre valores;
	
String amigo = JOptionPane.showInputDialog("Digite o nome do seu amigo");
JOptionPane.showMessageDialog(null,"Calma, se concentre. Este não é seu melhor amigo");	 
JOptionPane.showMessageDialog(null,"O viadao do ano"); 	 		
amigo = JOptionPane.showInputDialog("Digite o nome do seu melhor amigo de novo");
		if("Stefano".equalsIgnoreCase(amigo)) {
			JOptionPane.showMessageDialog(null, "Este viado, é seu melhor amigo");}
			while(!amigo.equalsIgnoreCase("Stefano")) {
				System.out.println(JOptionPane.showInputDialog("Esse é um amigo realmente, mas digite o nome do seu melhor amigo"));
				amigo = scan.next();
			}
	
}



}

Estou tentando aqui fazer com que uma caixa de texto venha na tela até a pessoa digitar o nome certo, que é “Stefano”, mas eu não estou conseguindo. Na parte final, ele some e a janela não volta mais

Basta inserir um do/while no código…

while (true){
      if (amigo.equalsIgnoreCase ("Stefano"){
             break;
     }
}