Enviar mensagem do Chat através de um textField

9 respostas
dsystem

Pessoal…

É o seguinte, estou desenvolvendo um chat e gostaria de uma ajuda…

Eu consegui fazer a comunicação entre os usuários, porém usando um simples SCANNER…

Eu gostaria de fazer o seguinte:

  • O usuário que envia a mensagem envia através de um textField
  • O usuário que recebe, recebe através de um TextArea…

Estou utilizando, como base, a apostila da Caelum.

Creio que tenho que alterar tanto no servidor quanto no cliente (Me corrijam se eu estiver errada).

No servidor tenho o seguinte método

public void distribuiMensagem(String msg){
         for(PrintStream cliente: this.clientes){
             cliente.println(msg);
         }
     }

//Aqui é a thread responsável por deixar mais de um cliente se conectar
public void run() {
        Scanner s = new Scanner(this.cliente);
        while(s.hasNextLine()){
            servidor.distribuiMensagem(s.nextLine());
        }        
        s.close();
    }

NO cliente tenho o seguinte código

Scanner teclado = new Scanner(System.in);
 PrintStream saida = new PrintStream(cliente.getOutputStream());    
while (teclado.hasNextLine()) {
         saida.println(teclado.nextLine());
        }

Eu tentei, no lugar do teclado passar um textField… mas ele entra em Loop e trava…

Alguém poderia me dar um help?

Obrigada!

9 Respostas

Eder_Peixoto

Você está usando Socket?
Você quer enviar o objeto JTextField ou seu conteúdo ( getText() )?

dsystem

Oi Eder,

Em primeiro lugar, obrigada por responder… Já estava sem esperanças…rsrs

Então, eu estou usando socket e eu gostaria de enviar o conteudo de um jtextfield… Por exemplo, eu irei me comunicar com um outro cliente, então eu quero digitar uma msg em um textField,no meu textfield e essa mensagem ser enviada para outro cliente e ser mostrada no textArea do cliente…

Deu pra entender?

Eu tentei de algumas formas,mas sem sucesso =/

Eder_Peixoto

Você terá que criar uma aplicação servidora e outra cliente. Conseguiu construir alguma delas?

dsystem

Consegui Eder…
Eu já estou conseguindo fazer a comunicação do cliente com o servidor…

O que não estou conseguindo é enviar mensagem para o servidor, pq ai o servidor irá direcionar para o cliente correto.

Se eu faço em aplicação console, ele vai certinho, mas qdo uso Swing, ai nao dá certo!

Eder_Peixoto

Não entendi pq consegue via console mas não quando trata-se de Swing. O que não está conseguindo é enviar (servidor enviando…) os objetos para os clientes corretos? Coloque seu código, pra facilitar.

acbit

.

dsystem

OLá acbit,

Então, eu consegui resolver sim. Depois de muito quebrar a cabeça consegui. Eu tenho que procurar o projeto, pq é um pouco antigo. Mas vou procurar e coloco aqui …

Você está tendo alguma dificuldade?

acbit

.

G

Olá dsystem

Estou exatamente com o mesmo problema que o seu . . teria como me ajudar ?

Eu fiz o mesmo execício da apostila, pela IDE funciona show de bola. Montei uma interface (netbeans), mas aí apareceram os problemas, tenho uma JTextfield onde são escritas as mensagens e um JTextPanel para ler as mensagens enviadas. Tô apanhando para colocar isso pra funcionar e vi que você já passou por isso.

Grande abraço.

Criado 29 de outubro de 2010
Ultima resposta 19 de jan. de 2012
Respostas 9
Participantes 4