Ajuda (Chat)

16 respostas
E

Ola, estou desenvolvendo um chat mas estou com um problema grande e pouco tempo, eu conecto no servidor com 2 clientes, as mensagens que digito é imprimida no textbox do cliente q esta mandando a mensagem, mas chega no outro cliente no painel em vez do chatbox.
Alguem tem alguma dica ???
ps:. c precisar eu coloco o codigo

16 Respostas

diego2005

Posta o código da parte que você está recebendo as mensagens…

T+

E
// execução da thread

public void run() {

System.out.println(escutando…”);		

jTextAreaGeral = getJTextAreaGeral();		

try {		

BufferedReader entrada = new BufferedReader

(new InputStreamReader(conexao.getInputStream()));

while (true) {

// pega o que o servidor enviou	

_linha = entrada.readLine();

jTextAreaGeral.setText(_linha);

System.out.println("variavel linha = " + _linha );

System.out.println("variavel conexao = " + conexao);		

System.out.println("done = " + done);

// verifica se é uma linha válida. Pode ser que a conexão

// foi interrompida. Neste caso, a linha é null. Se isso

// ocorrer, termina-se a execução saindo com break
if (_linha == null) {
    	System.out.println("deu pau");
    	//jTextAreaGeral.append("Conexão encerrada!");	    	
     break;
    }	    
    // caso a linha não seja nula, deve-se mostrar
    System.out.println(_linha);
    System.out.println("\n");
    //jTextAreaGeral.setText(_linha);
    //jTextAreaGeral.setText("\n");	    
   }
  }
  catch (IOException e) {
   // caso ocorra alguma exceção de E/S, mostre qual foi.
	  jTextAreaGeral.setText("IOException: " + e);
  }
  // sinaliza para o main que a conexão encerrou.
  done = true;
 }
diego2005

Não sei se entendi muito bem, mas quando você recebe uma mensagem no cliente, você está adicionando essa mensagem no jTextAreaGeral:

jTextAreaGeral.setText(_linha);

É nesse mesmo que tem que aparecer???

E

SIm, ja tentamos com set e com append mas nao esta imprimindo la…

diego2005

Tente fazer assim:

jTextAreaGeral.setText(jTextAreaGeral.getText() + _linha);

T+

E

Diego, não funciono :´(
Ta muito tenso… to a quase 2 semanas fazendo o chat, mas soh tenho até segunda, e nao vendo progressos nessa parte… ja tentei de quase tudo…
Tem + alguma ideia ???
Abraços e vlw !

diego2005

Você tem uma classe Servidor e uma classe Cliente??? Ou tem + classes?? Se quiser me mandar posso dar uma olhada pra vc…

T+

E

vlww

diego2005

Rapaz, dei uma olhada aqui, e sempre que o cliente recebe uma mensagem vc faz:

jTextAreaGeral = getJTextAreaGeral();

E essa linha sempre está retornando uma nova JTextArea, só não sei porque…

T+

E

Ptz… deve ser…

vou tentar fazer alguma coisa aki =x

vlw a ajuda…

se tiver alguma ideia de como arrumar da um toke xD

abraços.

vhuzalo

diego2005:
Rapaz, dei uma olhada aqui, e sempre que o cliente recebe uma mensagem vc faz:

jTextAreaGeral = getJTextAreaGeral();

E essa linha sempre está retornando uma nova JTextArea, só não sei porque…

T+

deve ser porque o getJTextAreaGeral está assim:

public JTextArea getJTextAreaGeral(){
     return new JTextArea();
}

deve ser assim:

public JTextArea getJTextAreaGeral(){
     if (jTextAreaGeral == null){
          jTextAreaGeral = new JTextArea();
     }
     return jTextAreaGeral;
}

:thumbup:

E

Brigadao por essa dica… mais ainda nao eh issu =/

ta muito estranho… sera q nao ta estânciado certo ?

diego2005

vhuzalo:
diego2005:
Rapaz, dei uma olhada aqui, e sempre que o cliente recebe uma mensagem vc faz:

jTextAreaGeral = getJTextAreaGeral();

E essa linha sempre está retornando uma nova JTextArea, só não sei porque…

T+

deve ser porque o getJTextAreaGeral está assim:

public JTextArea getJTextAreaGeral(){
     return new JTextArea();
}

deve ser assim:

public JTextArea getJTextAreaGeral(){
     if (jTextAreaGeral == null){
          jTextAreaGeral = new JTextArea();
     }
     return jTextAreaGeral;
}

:thumbup:

Pior que não.

Tá assim:

private JTextArea getJTextAreaGeral() { if (jTextAreaGeral == null) { System.out.println("area null"); jTextAreaGeral = new JTextArea(); jTextAreaGeral.setBounds(new Rectangle(11, 3, 466, 170)); jTextAreaGeral.setEditable(false); } return jTextAreaGeral; }

E

AEEEEEE CONSEGUI FAZER FUNCIONAR, VLW GALERA…

Ahh eu tenho +1 pergunta ^^

Tipo o chat ta em uma tela pequena e quando dou maximizar ele continua pequeno…

como faço pra quando eu maximizar ele, ele aumentar tmb ??? pq c nao ele fica soh pequeno ^^

Abraços !

diego2005

Pelo que vi você usou o método setBounds pra configurar a posição dos componentes. Use gerenciadores de layout que vai ficar do jeito que você quer, quando aumentar ou diminuir a tela os componentes se ajustam automaticamente…

T+

E

Ahh intão era issu mesmo… ja tava mesmo desconfiando do setBounds ^^

Vlw… agora to terminando xD

soh falta atualizar a lista de usuarios qndo entrarem e sairem e vai ta pronto…

vlw toda a ajuda ae

Criado 30 de outubro de 2007
Ultima resposta 31 de out. de 2007
Respostas 16
Participantes 3