Dificuldade com Swing + Socket

Olá, Meu primeiro post no forum tenho, 14 anos e gosto muito de programar em java, comecei a desenvolver alguns códigos e estou com problemas!

Gostaria de uma ajuda, na implementação desse código: [code]package JChat;

/**
*

  • @author Vanderson Martins do Rosario
    */
    //Bibliotecas usadas

    import java.io.;
    import java.net.
    ;

public class Main extends Thread{

private static boolean done = false;
public static void main(String[] args) {
   try{
       
       Socket conexao = new Socket("127.0.0.1", 8080);
       
       PrintStream saida = new PrintStream(conexao.getOutputStream());
       BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
       BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
       
       System.out.println("Entre com seu nome: ");
       
       String meuNome = teclado.readLine();
       
       System.out.println("Entre com sua senha: ");
       
       String senha = teclado.readLine();
       
     
       saida.println(meuNome);
       saida.println(senha);
       
       String s = entrada.readLine();
       
       if(s.equals("false")){
           System.out.print("Senha incoreta");
           return;
       }
       else{
       
       Thread t = new Main(conexao);
       
       t.start();
       
       String linha;
       
       while(true)
       {
           System.out.print("> ");
           linha = teclado.readLine();
           
           if(done)
           {
             break;
           }
           saida.println(linha);
       }
       }
   }
   catch(IOException e)
   {
     System.out.println("IOException " + e);
   }
}

//---------------------------------------------------------|
// Parte da classe que controla o recebimento de mensagens |
//---------------------------------------------------------|

private Socket conexao;

private Main(Socket s) {
    conexao = s;
}


public void run(){
    try{
        BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
        String linha;
        
        while(true){
            linha = entrada.readLine();
            
            if(linha == null){
                System.out.println("Conexao encerrada!");
                break;
            }
            System.out.println();
            System.out.print(linha);
            System.out.print("...>");
            
        }
    }
    catch(IOException e)
    {
        System.out.print("IOException "+e);
        
    }
    done = true;
}

}[/code]

Nesse daqui:

[code]package chatemformagrafica;

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Main extends JFrame {

private JButton Enviar = new JButton("Enviar");
private JTextArea Chat = new JTextArea("Bem vindo\n\n\n\n\n\n\n\n\n\n\n\n");
private JTextField Conversa = new JTextField("Escreva aqui!");
private JScrollPane Scroll = new JScrollPane(Chat);
private String linha; 
private String meuNome;
//Construtor
public Main() {



    try {


        meuNome = JOptionPane.showInputDialog(null, "Digite seu nome: ");



        String senha = JOptionPane.showInputDialog(null, "Digite a senha do servidor: ");


        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        Enviar.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                linha = Conversa.getText();
                Conversa.setText("");
                
                String s = Chat.getText();
                Chat.setText(s +meuNome +" digitou: \n" + linha+"\n");
            }
        });

        try {
            getContentPane().setLayout(new BorderLayout());
            Chat.setEditable(false);

            Conversa.setSize(50, 50);
            getContentPane().add(Conversa, BorderLayout.CENTER);
            getContentPane().add(Scroll, BorderLayout.NORTH);
            Enviar.setSize(50, 20);
            getContentPane().add(Enviar, BorderLayout.SOUTH);
        } catch (Exception e) {
            System.out.print("Erro no ContentPane");
        }
    } catch (Exception e) {
        System.out.print("ERRo na hora de criar a conexao!");
    }

}

public static void main(String[] args) {
    
    Main Frame = new Main();
    Frame.setTitle("JChar VER 0.1 BGsoft");
    Frame.pack();
    Frame.setSize(450, 400);
    Frame.setVisible(true);
}

}[/code]

Não queria pronto, pois estou com problemas na hora de criar uma conexão , entrada e saída de dados no código em swing, sempre que tento colocar da erro! Deve ter algum jeito de implantar uma conexão no ultimo código, certo?

Obrigado!
:oops:

Onde está teu servidor, q está escutando na porta 8080???
Tu instanciou apenas um Socket, deveria ter um ServerSocket esperando nessa porta. O socket tenta estabelecer uma conexão e não consegue, pq nao tem nenhum servi~co na 8080.

Fernando Rosa

A claro foi mau!
Vou postar o codigo do server
meu problema esta em colocar sockets no codigo com swing!

package JChatServer;

[code]
/**
*

  • @author Vanderson Martins
  • Agradecimentos:
  • Maria Rosa Panek
  • Vagner Martins do Rosario
    */

//Bibliotecas

import java.io.;
import java.net.
;
import java.util.;
import javax.swing.
;

public class Main extends Thread{

//Codigo Principal 

public static void main(String[] args) {
    
    // Inicio do codigo
    JOptionPane.showMessageDialog(null, "Servidor iniciado");
    //Cria um vetor para amazenar os clientes!
    clientes = new Vector();
    
    //Cria conexão com o servidor
    try{
        
     //Cria um socket com a porta 8800
     ServerSocket s = new ServerSocket(8080);
     
     //Loop Principal
     while(true){
         //Fica aguardando alguem se conectar ao servidor!
         System.out.println("Esperando alguem se conectar...");
         
         Socket conexao = s.accept();
         System.out.println("Conectou!");
         
         //Cria uma nova Thread para tratar essa conexão!
         
         Thread t = new Main(conexao);
         t.start();
         
         //Voltando ao loop, esperando mais alguem se conectar.
     }
     
    }
    catch(IOException e)
    {
        System.out.println("IOException " + e);
    }
}

//-------------------------------------------------------------|
// Parte do programa que controla as conexões                  |
//-------------------------------------------------------------|

//Vetor de clientes conectados
private static Vector clientes;

//Spcket do cliente
private Socket conexao;
// nome deste cliente
private String meuNome;
private String senha;

private Main(Socket s) {
    conexao = s;
}

// construtor que recebe o socket do cliente


//Execução

public void run()
{
    try
    {
        //obtendo os objetos que permitem controlar o fluxo
        
        BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
        PrintStream saida = new PrintStream(conexao.getOutputStream());
        
        //espera-se pelo nome do cliente 
        meuNome = entrada.readLine();
        
        senha = entrada.readLine();
         String s;
        
        if(senha.equals("ba142536")){
            System.out.print("Certo...");
            s = "true";
            saida.println(s);
        }
        else{
            s = "false";
            saida.println(s);
        }
        
        if(meuNome == null){
            return;
        }
        
        //uma vez que se tem um cliente conectado
        clientes.add(saida);
        
        String linha = entrada.readLine();
        
        while(linha != null && !(linha.trim().equals("")))
        {
            //Reenvia a linha para todos os clientes conectados 
            sendToAll(saida," disse: ",linha);
            
            //espera por uma nova linha
            
            linha = entrada.readLine();
            
        }
        
        sendToAll(saida,"saiu ","do chat");
        clientes.remove(saida);
        conexao.close();
    }
    catch(IOException e)
    {
        System.out.println("IOException: "+e);
    }
}
    
    //envia uma mensagem para todos
    
    public void sendToAll(PrintStream saida, String acao ,String linha) throws IOException
    {
        Enumeration e = clientes.elements();
        
        while(e.hasMoreElements())
        {
         //obtém o fluxo de saida de um dos clientes
           PrintStream chat = (PrintStream) e.nextElement();
         //envia para todos
           if(chat != saida){
               chat.println(meuNome + acao + linha);
           }
        }
        
    }
    
}[/code]

Primeiro, algumas dicas:

Não coloque o mesmo nome em todas as classes. Sugestões: SocketServidor, SocketCliente, ChatGUI…por aí vai.

Outra, não faça as implementações no construtor da classe. Faça métodos de conexão, de desconexão, de envio de mensagens, etc… Assim facilita as coisas.

Para utilizar o socket na tua janela windows, na classe swing crie uma variável do cliente socket, e através dela envie as mensagens. Instancie um objeto do tipo cliente socket, crie um método nessa classe para conexão. Aí na tua interface tu chama esse metodo e conecta o objeto com o servidor. Na classe cliente socket também tu cria um método que envie alguma string (tudo o que você ja fez, mas separado apenas por métodos). aí na classe swing tu pega a string que foi digitada e envia para o servidor através desse método de envio. No final, tu faz a desconexão do socket com o servidor.

Fernando Rosa

Obrigado vou tentar melhorar o codigo e saparar tudo, depois respondo se deu^^
vlw

Agora vai ficar mais facio me explicar^^

Codigo novo e com o erro!

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package chatemformagrafica;

import java.awt.;
import java.awt.event.
;
import javax.swing.;
import java.net.
;

public class ChatSwing extends JFrame {

private JButton Enviar = new JButton("Enviar");
private JTextArea Chat = new JTextArea("Bem vindo\n\n\n\n\n\n\n\n\n\n\n\n");
private JTextField Conversa = new JTextField("Escreva aqui!");
private JScrollPane Scroll = new JScrollPane(Chat);
public String linha;
public String meuNome;
public String senha;
public String TextoDoChat;
private Socket conexao;

public void Servidor(){
    try{
    conexao = new Socket("127.0.0.1", 8080);
    }
    catch(Exception e){
        System.out.print("poblema com servidor: " + e);
    }
    
}

public void EscreverNoChat() {
    linha = Conversa.getText();
    Conversa.setText("");
    TextoDoChat = Chat.getText();
    Chat.setText(TextoDoChat + meuNome + " digitou: \n" + linha + "\n");
}

public void ReceberNomeSenha() {
     meuNome = JOptionPane.showInputDialog(null, "Digite seu nome: ");
     senha = JOptionPane.showInputDialog(null, "Digite a senha do servidor: ");
}

public void botoes() {
    addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

    Enviar.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            EscreverNoChat();
        }
    });
}

public ChatSwing() {
    Servidor();
    
    botoes();
    
    ReceberNomeSenha();
    
    try {
        getContentPane().setLayout(new BorderLayout());
        Chat.setEditable(false);

        Conversa.setSize(50, 50);
        getContentPane().add(Conversa, BorderLayout.CENTER);
        getContentPane().add(Scroll, BorderLayout.NORTH);
        Enviar.setSize(50, 20);
        getContentPane().add(Enviar, BorderLayout.SOUTH);

    } catch (Exception e) {
        System.out.print("Erro no ContentPane");

    }
}
public static void main(String[] args) {
    
    ChatSwing Frame = new ChatSwing();
    Frame.setTitle("JChar VER 0.1 BGsoft");
    Frame.pack();
    Frame.setSize(450, 400);
    Frame.setVisible(true);
}

}[/code]

Problema esta aqui:

problema com servidor: java.net.ConnectException: Connection refused: connect

Uma coisa…
Tu iniciou a tua classe servidora?? o ServerSocket?? Acho que o erro está aí…O servidor nao foi inicializado!

O teu método Servidor() na verdade é o socket Client, certo.

Olá, eu também estou com dúvidas em conectar meu socket com a minha classe swing. Por exemplo, estou desenvolvendo um sistema onde o administrador cadastra um funcionário (na sua sala de escritório) e quando o restante da equipe da empresa (gerentes, rh, enfim) forem visualizar a lista de funcionário cadastrados, o nome desse funcionário ja deve aparecer pra eles. Seria como se fosse ATUALIZAR DADOS. Consigo fazer todo o cadastro com perfeição, o problema está na hora da exibição para os outros terminais que nao estou conseguindo fazer. Vou enviar parte do meu código, se alguem puder me ajudar, serei grata. Bjoss

[b]*****Formulario SWING

[code]package Visao;

import Controlador.FuncionarioCC;
import descartar.ConexaoBanco;
import DAO.FuncionarioDAO;
import Modelo.Funcionario;
import Socket.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**

  • @author Rebecca Dias
    /
    public class FormFuncionario extends javax.swing.JFrame {
    private ClienteData cliente;
    // private final String ip;
    /
    *

    • Creates new form FormFuncionario
      */
      public FormFuncionario(){
      // s = new ServidorData();
      cliente = new ClienteData();
      // cliente.start();
      initComponents();
      preencherTabela();
      // cliente = new ClienteData();
      // cliente.start();
      }

    /**

    • This method is called from within the constructor to initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is always

    • regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      jScrollPane3 = new javax.swing.JScrollPane();
      jTree1 = new javax.swing.JTree();
      jTabbedPane1 = new javax.swing.JTabbedPane();
      jPanel3 = new javax.swing.JPanel();
      LblNomeFuncionario = new javax.swing.JLabel();
      TxtNomeFuncionario = new javax.swing.JTextField();
      LblCpfFuncionario = new javax.swing.JLabel();
      LblEmailFuncionario = new javax.swing.JLabel();
      TxtEmailFuncionario = new javax.swing.JTextField();
      LblSalarioFuncionario = new javax.swing.JLabel();
      LblDescricaoFuncionario = new javax.swing.JLabel();
      jScrollPane2 = new javax.swing.JScrollPane();
      TxtDescricaoFuncionario = new javax.swing.JTextArea();
      LblFuncaoFuncionario = new javax.swing.JLabel();
      DdlFuncaoFuncionario = new javax.swing.JComboBox();
      BtnSalvarFuncionario = new javax.swing.JButton();
      TxtCpfFuncionario = new javax.swing.JFormattedTextField();
      TxtSalarioFuncionario = new javax.swing.JTextField();
      LblIdFuncionario = new javax.swing.JLabel();
      jScrollPane1 = new javax.swing.JScrollPane();
      jTable1 = new javax.swing.JTable();
      jPanel1 = new javax.swing.JPanel();
      LblCadastroFuncionario = new javax.swing.JLabel();
      jPanel2 = new javax.swing.JPanel();
      LblFiltroFuncionario = new javax.swing.JLabel();
      TxtFiltroFuncionario = new javax.swing.JTextField();
      BtnFiltrarFuncionario = new javax.swing.JButton();
      BtnListarFuncionario = new javax.swing.JButton();
      BtnIncluirFuncionario = new javax.swing.JButton();
      BtnExcluirFuncionario = new javax.swing.JButton();

      jScrollPane3.setViewportView(jTree1);

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      setTitle(“Cadastro de Funcionário”);

      jTabbedPane1.setPreferredSize(new java.awt.Dimension(440, 390));

      jPanel3.setPreferredSize(new java.awt.Dimension(413, 210));

      LblNomeFuncionario.setText(“Nome”);

      TxtNomeFuncionario.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      TxtNomeFuncionarioActionPerformed(evt);
      }
      });

      LblCpfFuncionario.setText(“CPF”);

      LblEmailFuncionario.setText(“E-mail”);

      LblSalarioFuncionario.setText(“Salário”);

      LblDescricaoFuncionario.setText(“Descrição”);

      TxtDescricaoFuncionario.setColumns(20);
      TxtDescricaoFuncionario.setRows(5);
      jScrollPane2.setViewportView(TxtDescricaoFuncionario);

      LblFuncaoFuncionario.setText(“Função”);

      DdlFuncaoFuncionario.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “Caixa”, “Garçon”, “Cozinheiro” }));

      BtnSalvarFuncionario.setText(“Salvar”);
      BtnSalvarFuncionario.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      BtnSalvarFuncionarioActionPerformed(evt);
      }
      });

      try {
      TxtCpfFuncionario.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
      } catch (java.text.ParseException ex) {
      ex.printStackTrace();
      }

      javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
      jPanel3.setLayout(jPanel3Layout);
      jPanel3Layout.setHorizontalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addContainerGap()
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
      .addComponent(BtnSalvarFuncionario)
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addComponent(LblNomeFuncionario)
      .addGap(18, 18, 18)
      .addComponent(TxtNomeFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 193, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGap(18, 18, 18)
      .addComponent(LblCpfFuncionario))
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addComponent(LblEmailFuncionario)
      .addGap(18, 18, 18)
      .addComponent(TxtEmailFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGap(63, 63, 63)
      .addComponent(LblSalarioFuncionario)))
      .addGap(18, 18, 18)
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(TxtCpfFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(TxtSalarioFuncionario, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)))
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addComponent(LblDescricaoFuncionario)
      .addGap(27, 27, 27)
      .addComponent(LblIdFuncionario)
      .addGap(144, 144, 144)
      .addComponent(LblFuncaoFuncionario)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      .addComponent(DdlFuncaoFuncionario, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      .addComponent(jScrollPane2)))
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      );
      jPanel3Layout.setVerticalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addContainerGap()
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(LblNomeFuncionario)
      .addComponent(TxtNomeFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(LblCpfFuncionario)
      .addComponent(TxtCpfFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(LblEmailFuncionario)
      .addComponent(TxtEmailFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(LblSalarioFuncionario)
      .addComponent(TxtSalarioFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(LblFuncaoFuncionario)
      .addComponent(DdlFuncaoFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(LblDescricaoFuncionario)
      .addComponent(LblIdFuncionario))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGap(18, 18, 18)
      .addComponent(BtnSalvarFuncionario)
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      );

      jTabbedPane1.addTab(“Cadastro”, jPanel3);

      jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] {
      {null, null, null, null, null, “”, null},
      {null, null, null, null, null, null, null},
      {null, null, null, null, null, null, null},
      {null, null, null, null, null, null, null}
      },
      new String [] {
      “Nome”, “CPF”, “Função”, “Título 4”, “Título 5”, “Título 6”, “Título 7”
      }
      ) {
      Class[] types = new Class [] {
      java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
      };

       public Class getColumnClass(int columnIndex) {
           return types [columnIndex];
       }
      

      });
      jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(java.awt.event.MouseEvent evt) {
      jTable1MouseClicked(evt);
      }
      });
      jScrollPane1.setViewportView(jTable1);
      jTable1.getColumnModel().getColumn(3).setMinWidth(0);
      jTable1.getColumnModel().getColumn(3).setPreferredWidth(0);
      jTable1.getColumnModel().getColumn(3).setMaxWidth(0);
      jTable1.getColumnModel().getColumn(4).setMinWidth(0);
      jTable1.getColumnModel().getColumn(4).setPreferredWidth(0);
      jTable1.getColumnModel().getColumn(4).setMaxWidth(0);
      jTable1.getColumnModel().getColumn(5).setMinWidth(0);
      jTable1.getColumnModel().getColumn(5).setPreferredWidth(0);
      jTable1.getColumnModel().getColumn(5).setMaxWidth(0);
      jTable1.getColumnModel().getColumn(6).setMinWidth(0);
      jTable1.getColumnModel().getColumn(6).setPreferredWidth(0);
      jTable1.getColumnModel().getColumn(6).setMaxWidth(0);

      jTabbedPane1.addTab(“Lista Funcionários”, jScrollPane1);

      getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

      LblCadastroFuncionario.setFont(new java.awt.Font(“Arial”, 1, 18));
      LblCadastroFuncionario.setText(“Cadastro de Funcionário”);

      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      jPanel1.setLayout(jPanel1Layout);
      jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
      .addContainerGap(101, Short.MAX_VALUE)
      .addComponent(LblCadastroFuncionario)
      .addGap(97, 97, 97))
      );
      jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel1Layout.createSequentialGroup()
      .addContainerGap()
      .addComponent(LblCadastroFuncionario)
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      );

      getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START);

      LblFiltroFuncionario.setText(“Filtrar por”);

      BtnFiltrarFuncionario.setText(“Filtrar”);

      BtnListarFuncionario.setText(“Listar”);

      BtnIncluirFuncionario.setText(“Incluir”);

      BtnExcluirFuncionario.setText(“Excluir”);
      BtnExcluirFuncionario.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      BtnExcluirFuncionarioActionPerformed(evt);
      }
      });

      javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
      jPanel2.setLayout(jPanel2Layout);
      jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel2Layout.createSequentialGroup()
      .addContainerGap()
      .addComponent(LblFiltroFuncionario)
      .addGap(18, 18, 18)
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(TxtFiltroFuncionario, javax.swing.GroupLayout.DEFAULT_SIZE, 326, Short.MAX_VALUE)
      .addGroup(jPanel2Layout.createSequentialGroup()
      .addComponent(BtnFiltrarFuncionario)
      .addGap(18, 18, 18)
      .addComponent(BtnListarFuncionario)
      .addGap(18, 18, 18)
      .addComponent(BtnIncluirFuncionario)
      .addGap(18, 18, 18)
      .addComponent(BtnExcluirFuncionario)
      .addGap(0, 28, Short.MAX_VALUE)))
      .addContainerGap())
      );
      jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel2Layout.createSequentialGroup()
      .addContainerGap()
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(LblFiltroFuncionario)
      .addComponent(TxtFiltroFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(BtnFiltrarFuncionario)
      .addComponent(BtnListarFuncionario)
      .addComponent(BtnIncluirFuncionario)
      .addComponent(BtnExcluirFuncionario))
      .addContainerGap(15, Short.MAX_VALUE))
      );

      getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_END);

      pack();
      }//

    private void TxtNomeFuncionarioActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    }

    private void BtnSalvarFuncionarioActionPerformed(java.awt.event.ActionEvent evt) {
    try {
    Funcionario objFuncionario = new Funcionario();
    FuncionarioCC objFuncionarioCC = new FuncionarioCC();

         objFuncionario.setNome(TxtNomeFuncionario.getText());
         objFuncionario.setCpf(TxtCpfFuncionario.getText());
         objFuncionario.setEmail(TxtEmailFuncionario.getText());
         objFuncionario.setSalario(Double.parseDouble(TxtSalarioFuncionario.getText()));
         objFuncionario.setDescricao(TxtDescricaoFuncionario.getText());
         //DdlFuncaoFuncionario é referente ao campo tipo do banco
         objFuncionario.setTipo((int)DdlFuncaoFuncionario.getSelectedIndex());
         
         objFuncionarioCC.SalvarFuncionario(objFuncionario);
         
     } catch (Exception ex) {
         Logger.getLogger(FormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
     }
    

    }

    private void BtnExcluirFuncionarioActionPerformed(java.awt.event.ActionEvent evt) {
    FuncionarioCC objFuncionarioCC = new FuncionarioCC();
    Funcionario objFuncionario = new Funcionario();

     objFuncionario = this.PreencheObjeto(objFuncionario);
     
     String excluir = "Deseja excluir: " + TxtNomeFuncionario.getText();
     int opcao = JOptionPane.showConfirmDialog(null, excluir, "Exclusão", JOptionPane.YES_NO_OPTION);
     
     if(opcao == JOptionPane.YES_OPTION)
     {
         try {
             objFuncionarioCC.RemoverFuncionario(objFuncionario.getIdFuncionario());
             
             this.preencherTabela();
             JOptionPane.showMessageDialog(null, "Registro excluído com sucesso.");
             jTabbedPane1.setSelectedComponent(jScrollPane1);
             
         } catch (SQLException ex) {
             Logger.getLogger(FormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
         } catch (ClassNotFoundException ex) {
             Logger.getLogger(FormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
         }
     }
    

    }

    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
    int linha = jTable1.getSelectedRow();

     TxtNomeFuncionario      .setText(jTable1.getValueAt(linha, 0).toString());
     TxtCpfFuncionario       .setText(jTable1.getValueAt(linha, 1).toString());
     DdlFuncaoFuncionario    .setSelectedIndex(Integer.parseInt(jTable1.getValueAt(linha, 2).toString()));
     TxtEmailFuncionario     .setText(jTable1.getValueAt(linha, 3).toString());
     TxtSalarioFuncionario   .setText(jTable1.getValueAt(linha, 4).toString());
     TxtDescricaoFuncionario .setText(jTable1.getValueAt(linha, 5).toString());
     LblIdFuncionario        .setText(jTable1.getValueAt(linha, 6).toString());
             
     jTabbedPane1.setSelectedComponent(jPanel3);
    

    }

    private Funcionario PreencheObjeto(Funcionario objFuncionario)
    {
    objFuncionario.setIdFuncionario(Integer.parseInt(LblIdFuncionario.getText()));
    objFuncionario.setNome(TxtNomeFuncionario.getText());
    objFuncionario.setCpf(TxtCpfFuncionario.getText());
    objFuncionario.setEmail(TxtEmailFuncionario.getText());
    objFuncionario.setSalario(Double.parseDouble(TxtSalarioFuncionario.getText()));
    objFuncionario.setTipo(DdlFuncaoFuncionario.getSelectedIndex());
    objFuncionario.setDescricao(TxtDescricaoFuncionario.getText());

// if(!TxtCodSocio.getText().trim().equals(""))
// objCliente.setCodSocio(Integer.parseInt(TxtCodSocio.getText()));
// else
// objCliente.setCodSocio(0);

    return objFuncionario;
}

public void preencherTabela()
{
   //  s = new ServidorData();  
    jTable1.getColumnModel().getColumn(0);//.setPreferredWidth(WIDTH);
    jTable1.getColumnModel().getColumn(1);
    jTable1.getColumnModel().getColumn(2);
    
    //Colunas invisíveis
    jTable1.getColumnModel().getColumn(3).setMaxWidth(0);
    jTable1.getColumnModel().getColumn(4).setMaxWidth(0);
    jTable1.getColumnModel().getColumn(5).setMaxWidth(0);
    jTable1.getColumnModel().getColumn(6).setMaxWidth(0);

    
    DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
    modelo.setNumRows(0);
    
    try
    {
        FuncionarioCC objFuncionarioCC = new FuncionarioCC(); 

        List<Funcionario> lista = objFuncionarioCC.ListarFuncionario();
        int tamanho = lista.size();

        for (int i = 0; i < tamanho; i++)
        {
            Funcionario objFuncionario = lista.get(i);
            modelo.addRow(new Object[] {objFuncionario.getNome(), objFuncionario.getCpf(),objFuncionario.getTipo(),
                                        objFuncionario.getEmail(), objFuncionario.getSalario(),objFuncionario.getDescricao(),
                                        objFuncionario.getIdFuncionario()});
        }
    }
    catch(Exception erro)
    {
        JOptionPane.showMessageDialog(null,"Erro ao listar itens" + erro);
    }
}

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /*
     * Set the Nimbus look and feel
     */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /*
     * If Nimbus (introduced in Java SE 6) is not available, stay with the
     * default look and feel. For details see
     * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(FormFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(FormFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(FormFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(FormFuncionario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /*
     * Create and display the form
     */
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
                new FormFuncionario().setVisible(true);
        }
    });
}
// Variables declaration - do not modify                     
private javax.swing.JButton BtnExcluirFuncionario;
private javax.swing.JButton BtnFiltrarFuncionario;
private javax.swing.JButton BtnIncluirFuncionario;
private javax.swing.JButton BtnListarFuncionario;
private javax.swing.JButton BtnSalvarFuncionario;
private javax.swing.JComboBox DdlFuncaoFuncionario;
private javax.swing.JLabel LblCadastroFuncionario;
private javax.swing.JLabel LblCpfFuncionario;
private javax.swing.JLabel LblDescricaoFuncionario;
private javax.swing.JLabel LblEmailFuncionario;
private javax.swing.JLabel LblFiltroFuncionario;
private javax.swing.JLabel LblFuncaoFuncionario;
private javax.swing.JLabel LblIdFuncionario;
private javax.swing.JLabel LblNomeFuncionario;
private javax.swing.JLabel LblSalarioFuncionario;
private javax.swing.JFormattedTextField TxtCpfFuncionario;
private javax.swing.JTextArea TxtDescricaoFuncionario;
private javax.swing.JTextField TxtEmailFuncionario;
private javax.swing.JTextField TxtFiltroFuncionario;
private javax.swing.JTextField TxtNomeFuncionario;
private javax.swing.JTextField TxtSalarioFuncionario;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTree jTree1;
// End of variables declaration                   

}[/code]
[/b]

**************************************Socket Cliente

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package Socket;

/**
*

  • @author Rebecca Dias
    */

import Visao.*;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ClienteData {
private Socket connect;//*
private ObjectOutputStream out;//*
private ObjectInputStream in;//*
private int porta;//*
private String ip;//*
private FormFuncionario tela;//*
// private TelaMapa mapa;
private int tipo;//*

 public ClienteData(FormFuncionario tela, String ip, int porta, int tipo)
{
    this.ip = ip;
    this.porta = porta;
    this.tela = tela;
  //  iniciarConexao();
    this.tipo = tipo;
}

public ClienteData() {
    //throw new UnsupportedOperationException("Not yet implemented");
}
  public void iniciarConexao()
{
    try
    {
        this.connect = new Socket(ip, porta);//inicia a conexao na porta 9047 e no ip informado
        this.out = new ObjectOutputStream(this.connect.getOutputStream());
        this.in = new ObjectInputStream(this.connect.getInputStream());

    }
    catch(SocketException e)
    {
        System.out.println("Servidor nao encontrado!");
        System.exit(1);
    }
    catch(Exception e)
    {
        System.out.println("iniciarConexao - " + e.getMessage());
        System.exit(1);
    }
}
public void closeConnection()
{
    try
    {
        this.in.close();//fecha a conexao com o socket do servidor
        this.out.close();
        this.connect.close();
    }
    catch(Exception e)
    {
        System.out.println("closeConnection: " + e.getMessage());
        System.exit(1);
    }
}

public static void main(String args[]) throws ClassNotFoundException {
    try {
        while(true) {
            // cria o socket
            Socket s = new Socket("localhost", 87);
            // cria um stream de entrada
            ObjectInputStream entrada = new ObjectInputStream(s.getInputStream());
            // obtem a data driada remotamente
            FormFuncionario tela = (FormFuncionario) entrada.readObject();
         //   Date data = (Date)entrada.readObject();
         //   System.out.println("Data : " + tela.toString());
            // fecha o stream
            entrada.close();
            // fecha o socket
            s.close();
        }
    } catch (UnknownHostException ex) {
        Logger.getLogger(ClienteData.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(ClienteData.class.getName()).log(Level.SEVERE, null, ex);
    }



}

public void start() {
 //   throw new UnsupportedOperationException("Not yet implemented");
}

}
[/code]

*******SERVIDORSOCKET

package Socket;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;



public class ServidorData  {

    public static void main (String args[]) {
        try{
            // cria um servidor de socket
            ServerSocket server = new ServerSocket(87);
            int cont = 0;
            while(true) { // rodando indefinidamente
                System.out.println("esperando o cliente " + cont++);
                // espera por requisições. retorna o socket do cliente que
                // solicitou uma conexao
                Socket s = server.accept();

                // processa a requisição em uma thread separada e volta a esperar
                // requisicoes
                ThreadProcessa t = new ThreadProcessa(s);
                Thread thread = new Thread(t);
                thread.start();
            }

        } catch (IOException ex){
            ex.printStackTrace();
        }
    }

  
}

******************THREAD

[code]package Socket;

import Visao.*;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ThreadProcessa implements Runnable {
Socket s;

public ThreadProcessa(Socket s) {
    this.s = s;
}

public void run() {
    try {
        // cria a data a ser enviada
        FormFuncionario tela = new FormFuncionario();
      //  Date data = new Date();
        // cria o stream de saída
        ObjectOutputStream saida;
        // espera 4s (simula processamento pesado)
        Thread.sleep(4000);
        // obtem o stream do socket do cliente
        saida = new ObjectOutputStream(s.getOutputStream());
        // envia a data via stream
        saida.writeObject(tela);
        // fecha o stream
        saida.flush();
        saida.close();
        // fecha o socket
        s.close();
    } catch (IOException ex) {
        Logger.getLogger(ServidorData.class.getName()).log(Level.SEVERE, null, ex);
    } catch (InterruptedException ex) {
            Logger.getLogger(ServidorData.class.getName()).log(Level.SEVERE, null, ex);
    }
}

[/code]

Se alguem puder me ajudar, como tenho que fazer essa conexao com o swing, serei grata!!!