Desenvolvimento de Chat

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)

}
}
}
}

}
}

podia ao menos identar o código ?

qual o problema?

Obrigado, não consigo terminar o codigo

falta oq?

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

mas qual o erro? qual msg aparece? flw

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

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)

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

Olá!

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

Agradeço pela dica.