JOptionPane que não funciona!

Estou tentando colocar uma mensagem para o usuário no código para caso de não rodar ou de chegar ao final de ser executado. Porem funciona com poucos linhas entorno de 50, porem as bases de dados podem chegar 90000 e com um teste de 25000 linhas o JOptionPane já não mostrou a janela deixando o código ainda em execução. Alguém. pode me dar uma luz.

package Carga;

import java.io.*;
import java.sql.*;
import javax.swing.*;

public class Teste2 extends Conexao {

	public static void main(String[] args) throws IOException, Exception  {
		
		FileReader arq = new FileReader ("C:/Users/F8061431/Desktop/Bases/Base Abertos/teste.txt");
		BufferedReader sr = new BufferedReader (arq);
		String[] adados = new String [42];
		String dados = null;
		int contador = 0;
		Connection conn = ObterConexao();
		
		try {
		dados = sr.readLine();
		
		while ((dados = sr.readLine())!= null) {
			contador = contador + 1;
			adados = dados.replaceAll("'", "").split(",");
		
			PreparedStatement query1 = conn.prepareStatement("INSERT INTO BASE_ABERTOS_TEMP2 VALUES ('"+adados[0]+"','"+adados[1]
			+"','"+adados[2]+"','"+adados[3]+"','"+adados[4]+"','"+adados[5]+"','"+adados[6]+"','"+adados[7]+"','"+adados[8]+"','"
			+adados[9]+"','"+adados[10]+"','"+adados[11]+"','"+adados[12]+"','"+adados[13]+"','"+adados[14]+"','"+adados[15]+"','"
			+adados[16]+"','"+adados[17]+"','"+adados[18]+"','"+adados[19]+"','"+adados[20]+"','"+adados[21]+"','"+adados[22]+"','"
			+adados[23]+"','"+adados[24]+"','"+adados[25]+"','"+adados[26]+"','"+adados[27]+"','"+adados[28]+"','"+adados[29]+"','"
			+adados[30]+"','"+adados[31]+"','"+adados[32]+"','"+adados[33]+"','"+adados[34]+"','"+adados[35]+"','"+adados[36]+"','"
			+adados[37]+"','"+adados[38]+"','"+adados[39]+"','"+adados[40]+"','"+adados[41]+"',TO_CHAR(CURRENT_DATE,'DD/MM/YYYY'))");
			
			query1.execute();
			
			query1.close();
			
		}
		
		conn.close();
		sr.close();
		
		JOptionPane.showMessageDialog(null,"Base inseriu "+ contador +" de Linhas");
		}
		catch(IOException erro){
		      JOptionPane.showMessageDialog(null,"Arquivo nao pode ser inserido!");
		    }
	}
	
}

Fiz esse código também. Quando chamo o objeto na classe principal até funciona mas o código permanece em execução.

package Carga;

import javax.swing.JFrame;   
import javax.swing.JTextArea;   
	  
	public class Aviso extends JFrame {   
		     
	   		
	private JTextArea texto = new JTextArea ("\n Base inserida!");   
	  
	   public Aviso () {   
	     
	     super ("Base");   
	     this.montaJanela ();   
	   }   
	  
	   private void montaJanela () {   
	     this.getContentPane (). add (texto);   
	   }   
	  
	  }