Desenvolvimento de Chat

10 respostas
Mariva

Boa noite,

Amigos!

Peço ajuda quem poder dar uma dica, para resolver o codigo abaixo, que é desenvolvimento deu um chat, trabalho da faculdade.

Att.
MARIVA

package chat;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.ArrayList;

import java.io.PrintStream;
// Variables declaration - do not modify

// Variables declaration - do not modify

public class Executa extends javax.swing.JFrame {

/* Declações Globais*/

private int x = 0; //Variavel de informação do login cliente ou servidor
private Projeto projeto; // Variavel projeto da 2 tela do cliente





/** Creates new form executa */
public Executa() {
    initComponents();
    LimpaTela(); //Chama o método
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      LimparTela2();
    x = 1;
}                                        

@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jLabel1 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    textField1 = new java.awt.TextField();
    textField2 = new java.awt.TextField();
    textField3 = new java.awt.TextField();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jButton3 = new javax.swing.JButton();
    jButton4 = new javax.swing.JButton();
    jButton5 = new javax.swing.JButton();
    textArea1 = new java.awt.TextArea();
    jButton6 = new javax.swing.JButton();
    jButton7 = new javax.swing.JButton();
    textArea2 = new java.awt.TextArea();
    jButton8 = new javax.swing.JButton();
    jLabel4 = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setBackground(new java.awt.Color(51, 0, 255));
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    setForeground(javax.swing.UIManager.getDefaults().getColor("Button.background"));
    addContainerListener(new java.awt.event.ContainerAdapter() {
        public void componentAdded(java.awt.event.ContainerEvent evt) {
            formComponentAdded(evt);
        }
        public void componentRemoved(java.awt.event.ContainerEvent evt) {
            formComponentRemoved(evt);
        }
    });
    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jLabel1.setBackground(new java.awt.Color(255, 255, 255));
    jLabel1.setText("NICKNAME");
    getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 84, -1, 20));

    jLabel2.setBackground(new java.awt.Color(255, 255, 255));
    jLabel2.setText("IP");
    getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 120, -1, -1));

    jLabel3.setBackground(new java.awt.Color(255, 255, 255));
    jLabel3.setText("PORTA");
    getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 160, -1, -1));

    textField1.setText("textField1");
    getContentPane().add(textField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 80, 240, -1));

    textField2.setText("textField2");
    getContentPane().add(textField2, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 120, 190, -1));

    textField3.setText("textField3");
    getContentPane().add(textField3, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 160, 150, -1));

    jButton1.setBackground(new java.awt.Color(255, 255, 255));
    jButton1.setText("CLIENTE");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 80, -1, -1));

    jButton2.setBackground(new java.awt.Color(255, 255, 255));
    jButton2.setText("SERVIDOR");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 120, -1, -1));

    jButton3.setBackground(new java.awt.Color(255, 255, 255));
    jButton3.setText("CONECTAR");
    jButton3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton3ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 210, -1, -1));

    jButton4.setBackground(new java.awt.Color(255, 255, 255));
    jButton4.setText("LIMPAR");
    jButton4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton4ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 210, -1, -1));

    jButton5.setBackground(new java.awt.Color(255, 255, 255));
    jButton5.setText("SAIR");
    jButton5.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton5ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 210, -1, -1));
    getContentPane().add(textArea1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 330, 390, 60));

    jButton6.setBackground(new java.awt.Color(255, 255, 255));
    jButton6.setText("ENVIAR");
    jButton6.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton6ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 300, -1, -1));

    jButton7.setBackground(new java.awt.Color(255, 255, 255));
    jButton7.setText("CANCELAR");
    jButton7.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton7ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton7, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 300, -1, -1));
    getContentPane().add(textArea2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 420, 420, 230));

    jButton8.setBackground(new java.awt.Color(255, 255, 255));
    jButton8.setText("DESCONECTAR");
    jButton8.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton8ActionPerformed(evt);
        }
    });
    getContentPane().add(jButton8, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 300, -1, -1));

    jLabel4.setBackground(new java.awt.Color(255, 255, 255));
    jLabel4.setFont(new java.awt.Font("Vineta BT", 0, 24));
    jLabel4.setForeground(new java.awt.Color(255, 51, 0));
    jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    jLabel4.setText("CHAT - MSG");
    getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 10, 230, 50));

    getAccessibleContext().setAccessibleName("Mariva");

    pack();
}// </editor-fold>                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       LimparTela3();
    x = 2;
}                                        

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    if (getX() == 1) { //Condição do cliente
        try {
            String nick = textField1.getText(); //Variavel do nick dos clientes
            Socket cliente = new Socket(textField2.getText(),
                    Integer.parseInt(textField3.getText()));
            this.dispose();
            projeto = new Projeto(cliente, nick);
            projeto.setLocationRelativeTo(null);
            projeto.setVisible(true);
        } catch (IOException e) {
            System.out.println("Erro de Conexão");
        }
    }
    if (getX() == 2) {
         try {

            ServerSocket servidor = new ServerSocket(Integer.parseInt(textField3.getText()));
            this.dispose(); //Limpa a tela
            ArrayList<Socket> clientes = new ArrayList<Socket>();// cria  um array

            while (true) {
                Socket cliente = servidor.accept();
                clientes.add(cliente);
                LeitorServidor leitor = new LeitorServidor(cliente.getInputStream(), clientes);
                System.out.println(" ");
                new Thread(leitor).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
}
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

Limpartela1();

}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {

this.dispose(); // Encerrar a tela

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
            new Executa().setVisible(true);
        }

    });
}
/* Métodos que modifica as telas*/

private void Limpartela1() {

jButton1.setEnabled(true);

jButton2.setEnabled(true);

jButton3.setEnabled(false);

jButton4.setEnabled(false);

jButton5.setEnabled(true);

jTextField1.setText("");

jTextField2.setText("");

jTextField3.setText("");

jTextField1.setEnabled(false);

jTextField2.setEnabled(false);

jLabel1.setEnabled(false);

jLabel2.setEnabled(false);

jLabel3.setEnabled(false);
}

private void LimpaTela() {

    jButton3.setEnabled(false);
    jButton4.setEnabled(false);
    jButton5.setEnabled(true);
    jTextField1.setText("");
    jTextField2.setText("");
    jTextField3.setText("");
    jTextField1.setEnabled(false);
    jTextField2.setEnabled(false);
    jLabel1.setEnabled(false);
    jLabel2.setEnabled(false);
    jLabel3.setEnabled(false);

}

private void LimparTela2() {
    jButton1.setEnabled(false);
    jButton2.setEnabled(false);
    jButton3.setEnabled(true);
    jButton4.setEnabled(true);
    jButton5.setEnabled(true);
    jTextField1.setText("");
    jTextField2.setText("");
    jTextField3.setText("");
    jTextField1.setEnabled(true);
    jTextField2.setEnabled(true);
    jLabel1.setEnabled(true);
    jLabel2.setEnabled(true);
    jLabel3.setEnabled(true);

}

private void LimparTela3() {
    jButton1.setEnabled(false);
    jButton2.setEnabled(false);
    jButton3.setEnabled(true);
    jButton4.setEnabled(true);
    jButton5.setEnabled(true);
    jTextField1.setText("");
    jTextField2.setText("");
    jTextField3.setText("");
    jTextField1.setEnabled(false);
    jTextField2.setEnabled(false);
    jLabel1.setEnabled(false);
    jLabel2.setEnabled(false);
    jLabel3.setEnabled(false);
}

void imprimetela(String nextLine) {
    throw new UnsupportedOperationException("Not yet implemented");
}

public class Projeto {

Socket cliente;
String nome; // variavel guarda nicknames
private int marcador;// variavel guarda entradas

public Projeto() {
    initComponents();
}

public Projeto(Socket dados, String nome) {
    initComponents();
    this.cliente = dados;
    this.nome = nome;
      marcador = 0;
    Escritor(nome);
    try {
        LeitorCliente leitor = new LeitorCliente(cliente.getInputStream(),this);
        new Thread(leitor).start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {

String mensagem = textArea1.getText();

Escritor(mensagem);

}
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {

Limpartela();

}
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {

marcador=3;

Escritor(acabou de sair);

this.dispose();

}
private void formComponentAdded(java.awt.event.ContainerEvent evt) {

// TODO add your handling code here:

}
private void formComponentRemoved(java.awt.event.ContainerEvent evt) {

// TODO add your handling code here:

}
/**
     * @return the marcador
     */
    public int getMarcador() {
        return marcador;
    }

class Executa.Projeto {

}

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new Projeto().setVisible(true);
        }
    });
}
/* Implementação dos metodos chamados acima*/

private void Limpartela() {

textArea1.setText("");

}
private void Escritor(String projeto) {

    try {
        PrintStream saida = new PrintStream(getCliente().getOutputStream());
        if (getMarcador() == 1) {
            cifrar(projeto,7);
            saida.println(cifrar(nome,7) + cifrar(" diz:",7)+ cifrar(texto,7));
            Limpartela();
        }
        if (getMarcador() == 0) {
            saida.println(cifrar(nome,7)+ cifrar(" acabou de entrar:",7));
            marcador = 1;
        }
        if( getMarcador() == 3){
           saida.println(cifrar(nome,7) + cifrar(texto,7));
        }
    } catch (IOException e) {
        System.out.println("Erro de Conexão");
}

public void imprimetela(String s) {
    textArea2.append(decifrar(s,7) + "\n");
}
    void imprimetela(String nextLine) {
    throw new UnsupportedOperationException("Not yet implemented");
}
    private String decifrar(String s, int i) {
        for (int x = 0; x < texto.length(); x++) {
            index =(int) (texto.charAt(x)) + [x];
            throw new UnsupportedOperationException("Not yet implemented");
        }
    }

}

// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private java.awt.TextArea textArea1;
private java.awt.TextArea textArea2;
private java.awt.TextField textField1;
private java.awt.TextField textField2;
private java.awt.TextField textField3;
// End of variables declaration

}
}
}

/*

public void imprimetela(String)

textArea2.append(s + “\n);

}

public static String CriptoEx1(){

CriptoEx1 encrypter = new CryptoEx1(key);

String encrypted = Encrypter.ecrypt("");

System.out.println(encrypted);
String decrypted = encrypter.decrypt(encrypted);
System.out.println(decrypted);

cattch (Exception e)
}

}

}

}

}
}

10 Respostas

aix

podia ao menos identar o código ?

tinorberto

qual o problema?

Mariva

Obrigado, não consigo terminar o codigo

tinorberto

falta oq?

Mariva

Bom dia,

Tinoberto!

Sei que que vai dar muito trabalho, peço se possível fazer uma analise nesse arquivo e informar a onde estou errando, informo também que estou iniciando, estou no segundo período da Faculdade de Tecnologo.

Desde já agradeço

Mariva

tinorberto

mas qual o erro? qual msg aparece? flw

Mariva

Boa dia,

As mensagens de erros são essas abaixo:

i[b]s already defined in chat.executa
já está definido no chat.executa

ilegal start of expression
iniciar ilegal de expressão

cannot find symbol
não pode encontrar o símbolo

symbol method
método símbolo

location:class chat.Executa
symbol: variable jtextField
Local: chat.Executa classe
símbolo: JTextField variável

Mariva

Boa tarde, Tinorberto!

As mensagens de erros são essas.

Att.
Mariva

Exception in thread AWT-EventQueue-0 java.lang.RuntimeException: Uncompilable source code

at chat.Executa.LimpaTela(Executa.java:264)

at chat.Executa.(Executa.java:32)

at chat.Executa$10.run(Executa.java:233)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
tinorberto

Olá, esse codigo esta faltando varias coisas, nem compilar compila… vc que fez? no deitel java como programar tem um exemplo igual vc precisa…flw

Mariva

Olá!

Sim, foi eu que fiz é um trabalho para ser apresentado na Faculdade amanhã dia 14/10.

Agradeço pela dica.

Criado 10 de outubro de 2010
Ultima resposta 12 de out. de 2010
Respostas 10
Participantes 3