Interface trava apos um ftp.connect()

Ola!!!
Ao implementar um Client de FTP, toda vez que pesso pra conectar, ftp.connect()
a janela trava até que termine a ação de conexão.
Como poderia fazer pro JFrame não ficar congelado durante esse processo???

[code]
private class ConnectFtp implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
try
{
/* Chamando a leitura do arquivo de configuração */
writer.readerFile(reader);

			if(reader.getProxy())
			{
				textarea_3.append("Proxy ativado:   Host: "+reader.getIP()+"   Porta: "+reader.getPorta()+"\n");
				System.getProperties().put("socksProxyPort", reader.getPorta());
				System.getProperties().put("socksProxyHost", reader.getIP());
			}
			if(url.getText().length() != 0)
			{
				ftp.connect(url.getText());
				textarea_3.append("Tentando conectar-se em: "+url.getText());
				
				if(FTPReply.isPositiveCompletion(ftp.getReplyCode()))
				{
					textarea_3.append("       ***Conectado.***\n");
					ftp.login(tflogin.getText(), senha.getText());
					textarea_3.append("Efetuando login: "+"   Usuario: "+tflogin.getText()+"   Senha: ****** \n");
			
					bLogin.setEnabled(false);
				}
				else
				{
					ftp.disconnect();
					textarea_3.append("Conexão recusada. \n");
					
					System.exit(1);
				} 
			}  			
		}
		catch(Exception exception)
		{
			textarea_3.append("Erro na tentativa de conexão: "+exception.getMessage()+"\n");
		}
		finally
		{
			ListarDados();
		}
		
	}
}[/code]

Vale dizer que, isso ocorre mesmo deixando somente, ftp.connect(); ou seja as outras instruções não pertencentes a parte de FTP não são as causadoras do meu problema.
Isso também ocorre quando faço uma conexão com um banco de dados Acess, então acho que o problema ta no modo como estou usando o java.
Desde ja agradeço,
Obrigado!!!

Ola pesoal!!!
Sei que andamos meio ocupados…
Mas vamos lá… alguem me da uma força ai!
Obrigado.

Infelizmente tenho o mesmo problema com o WHILE, coisa simples, mas o JFrame trava e não consigo mais verda porcaria nenhum =/
talvez tenha alguma coisa com deixar o frame sempre em primeiro plano ou algo do tipo, pq um simples WHILE e dentro do mesmo tenho um label.setText(“teste”) com intervalos de 1 segundo… eh inacreditavel, ja se faço esse while no console funciona =/
Se alguem disser que o while fica usando o frame a toda hora e assim travando ele eu vou passar a odiar o JAVA, pois outras linguagens como por exemplo DELPHI ou VB, com TIMER eu uso e nao trava, agora o JAVA ta meio dificil…
alguem pode ajudar? obrigado

Comigo aconteceu a mesma coisa com o ftp.connect. Fiz um teste executando o ftp.connect fora da interface swing e rodou maravilha.
Fiz ainda mais um teste: rodei no Windows 7 64 e mesmo com a interface a aplicação rodou perfeita. O que posso concluir é que o XP tem algum conflito quanto a isso.

FUNCIONOU!!!

Simples: isso é algum conflito do Firewall do Windows. Existem dua soluções:

  1. Desative o Firewall do Windows (não recomendado); OU
  2. Execute o jar fora da IDE.

Executei o jar diretamente e funcionou beleza, mas dentro da IDE continua travando.