TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O CHAT EM JAVA MVC

Por:   •  12/6/2022  •  Trabalho acadêmico  •  2.177 Palavras (9 Páginas)  •  84 Visualizações

Página 1 de 9

Projeto

Neste projeto foi criado um programa que realiza comunicação interna entre dois computadores conectados em uma rede.

O programa  foi desenvolvido na linguagem Java ,sendo necessário a instalação da Máquina Virtual Java (JVM), para uso do chat.

  1. Ao iniciar o chat, primeiro é apresentado uma janela solicitando o nome do usuário.

[pic 1]

 2. Após digitar o nome e questionado seu o usuário será o Servidor ou Cliente .

[pic 2]


Caso seja feito a escolha por Cliente é aberto uma nova janela questionando o IP do Servidor, que terá que ser previamente informado.

[pic 3]

Para o usuário que será o servidor logo após a segunda janela abrira a janela principal  do chat, e para o cliente esta janela abrira após digitar o IP

[pic 4]

Se a conexão for estabelecida corretamente cada usuário recebera uma mensagem de confirmação

[pic 5]

Com a conexão estabelecida é possível começar a conversa.

[pic 6]


Relatório com as linhas de código

Classe Controle

package MVC;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import javax.swing.JOptionPane;

public class Controle {

        private final Visao view;

    private final Modelo model;

    static Socket Sockconn;

    ServerSocket ServSoc;

    public Controle(Visao view, Modelo model) throws IOException {

        this.view = view;

        this.model = model;

        view.enviaListener(new Envia());

        escolha();

    }

    void escolha() throws IOException {

        model.setNome(JOptionPane.showInputDialog(null, "digite seu nome"));//indica nome da pessoa

        Object[] opcoes = {"Servidor", "Cliente"};//cria objeto de opçoes para escolher entre servidor e cliente

        //janela com as opcoes

        int opcao = JOptionPane.showOptionDialog(null, "Olá " + model.getNome()

                + "\nVoce deseja ser Servidor ou Cliente?", "Escolha",

        JOptionPane.DEFAULT_OPTION, JOptionPane.DEFAULT_OPTION, null, opcoes, opcoes[0]);

        if (opcao == 0) {//chama metodo para conexao como servidor ou cliente

            model.ipServ.getLocalHost();

            view.getjTAHistorico().setText("Bem vindo "+model.getNome());

            view.setTitle("servidor");//inidica titulo da janela de acordo com escolha

            model.servidor();//inicia conexao como servidor

        } else if (opcao == 1) {

            model.ipCli = JOptionPane.showInputDialog(null,"digite o Ip do Servidor\n por exemplo", "192.168.1.0");

             view.getjTAHistorico().setText("Bem vindo "+model.getNome());

            view.setTitle("Cliente");

            model.cliente();//inicia conexao como cliente

        }

    }

    class Envia implements ActionListener {// ação do Botão

        @Override

        public void actionPerformed(ActionEvent e) {

            //verifica se existe texto no TextField

            if ((e.getSource() == view.getjBEnviar()) && (view.getjTFNovaMens().getText() != "")) {

                //envia o texto para o TextArea para ficar salco como Historico

                view.getjTAHistorico().setText(view.getjTAHistorico().getText()

                        + "\n Eu:" + view.getjTFNovaMens().getText());

                model.enviar(model.getNome() + ": " + view.getjTFNovaMens().getText());

                //limpa TextField

                view.getjTFNovaMens().setText("");

            }

        }

    }

    public static void main(String[] args) throws IOException {

        Visao v = new Visao();

        Modelo m = new Modelo(v);

        Controle p = new Controle(v, m);

    }

}



Classe Visão

package MVC;

import java.awt.BorderLayout;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Visao extends JFrame {

    private JPanel JPGeral;

    private JPanel jPOutros;

    private JTextField jTFNovaMens;

    private JTextArea jTAHistorico;

    private JButton jBEnviar;

    public Visao() {

        setTitle("Char Super uau"); // seta titulo a janela

        iniciaComponentes();//metodo que inicia componentes

        setVisible(true);//deixa Jframe visivel

        setContentPane(JPGeral);//indica que este e o painel principal

        pack();// indica tamnho do jframe de acorod com componentes

        setResizable(false);//impede de mudar tamnho da janela

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//habilita fechamento pelo x

    }

    public void iniciaComponentes() {

...

Baixar como (para membros premium)  txt (9 Kb)   pdf (208.2 Kb)   docx (165.2 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com