Problemas com a interface

6 respostas
B

Olá

Eu tenho um problema num trabalho da faculdade, nele é pedido que a gente faça um chat em java. Sendo que não se deve usar threads.

Eu tenho o seguinte construtor “controler” que cria a interface grafica e estabelece a conexao sockets (em classes separadas, o controler serve de intermediario).

Eu vou colocar os comentarios /* */ com o codigo explicativo para voces

public CtChat ( String ip, String nickName)
	{
		boolean bErro;
		String nome;
		String nome2;
		
		nick = nickName;
		bErro = false;

/* Instancia a classe chat que eh uma sub classe de JFrame */
		chat = new Chat (nickName,this);
		chat.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		btnEnvia = chat.GetBotao();
		btnEnvia.addActionListener(this);

		// cria a classe conveniente
		
		if (ip.equalsIgnoreCase("localhost"))
		{
			// Se é localhost, então inicia um servidor
			cliser = new Servidor (ip,nickName,this);
			nome = "Servidor";
			nome2 = "Cliente";
		}
		else
		{
			// se não, então é cliente
			cliser = new Cliente (ip,nickName,this);
			nome = "Cliente";
			nome2 = "Servidor";
		}
		
		// Inicia a conexão
		
		bErro = cliser.Conecta();

	}

Quando eu crio o servidor ou cliente, eles entram numa especie de “loop infinito” controlado.

O problema é o seguinte: A JFrame nao mostra os componentes que deveriam aparecer. Eles só aparecem quando eu fecho a conexao e ele sai de um desses “loops infinitos”.

Entao, o que eu posso fazer para resolver isso?

Desde já agradeço e disponho meu messenger e icq a disposição :wink:

[]´s

Pilot

6 Respostas

B

Bom, o desespero me manda fazer isso…

E COM THREADS!?? COMO EU FACO?? rs

Sério, eu nao sei nada de Threads mas topo aprender ateh… terca!

[]'s!

cv1

Estranho isso… teu professor especificamente te pediu pra nao usar Threads? Talvez ele esteja querendo te forcar a aprender NIO (New IO), mas aih jah eh meio pegar pesado… :smiley:

Uma solucao possivel eh, dentro do seu loop, despachar todos os eventos da Swing, mas po, solucaozinha macabra essa, e eu definitivamente nao recomendaria :smiley:

louds

Realmente, sem usar NIO ou Threads fica impraticavel.

B

Bem, a questao eh a seguinte…

Ele nao proibiu threads, mas anunciou que haveria outro trabalho envolvendo threads. Ou seja, tem que ter uma maneira de fazer isso sem threads, pq nao eh o tema de estudo.

Tipo, eu sei, vai ser um chat só para duas pessoas (onde uma eh um servidor). Já saquei isso tudo, o problema mesmo eh fazer a interface aparecer :cry: pq o resto ta tudo criado.

N

Ae fica dificil sem usar threads. :frowning:

N

Pq NIO ? :roll:

Criado 28 de março de 2004
Ultima resposta 29 de mar. de 2004
Respostas 6
Participantes 4