Ao clicar na tabela só carrega a primeira List<> [RESOLVIDO]

Pessoal estou com um problema faz um tempo em um cadastro de Funcionários. Como tenho muitos dados para gravar dividi no banco o cadastro do funcionário em três tabelas funcionarioDados, funcionarioEndereco e funcionarioDadosFuncionais. Para gravar está tudo certo, mais o problema é na hora de buscar todos esses dados, pois para buscar cada tabela eu guardo em uma List<>, portanto são em 3 List<>, para depois passar para os jTextFields. Tenho uma Jtable, que ao abrir o formulário todos os Funcionários aparecem carregados, mas na hora de clicar na Jtable para carregar os dados nos JtextFields, só carrega as três List<> corretamente os dados do funcionário que está na primeira linha, os cadastros da[img] segunda linha em diante só carrega a primeira List<>. Ai aparece este erro…

Exception in thread &quot;AWT-EventQueue-0&quot; java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.ArrayList.get(ArrayList.java:382) at projeto.forms.JFormFuncionario.jTtabelaLinhaSelecionadaEndereco(JFormFuncionario.java:147) at projeto.forms.JFormFuncionario.jTable1MouseClicked(JFormFuncionario.java:2156) at projeto.forms.JFormFuncionario.access$200(JFormFuncionario.java:39) at projeto.forms.JFormFuncionario$2.mouseClicked(JFormFuncionario.java:656) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270) at java.awt.Component.processMouseEvent(Component.java:6508) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703) at java.awt.EventQueue.access$000(EventQueue.java:102) at java.awt.EventQueue$3.run(EventQueue.java:662) at java.awt.EventQueue$3.run(EventQueue.java:660) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:676) at java.awt.EventQueue$4.run(EventQueue.java:674) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:673) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Classe FuncionarioDao

[code]public List<Funcionario> getListaDados(String descricao) throws SQLException {
String sql = “select * from funcionario where nome like ?”;
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, descricao);
ResultSet rs = stmt.executeQuery();
List<Funcionario> minhaLista = new ArrayList<Funcionario>();
while (rs.next()) {
Funcionario c1 = new Funcionario();
c1.setCodFunc(Long.valueOf(rs.getString(“codfunc”)));
c1.setNome(rs.getString(“nome”));
c1.setNomeAbreviado(rs.getString(“nome_abreviado”));
c1.setRg(rs.getString(“rg”));
c1.setCpf(rs.getString(“cpf”));
c1.setNascimento(rs.getString(“nascimento”));
c1.setEstadocivil(rs.getInt(“estado_civil”));
c1.setEscolaridade(rs.getInt(“instrucao”));
c1.setFormacao(rs.getString(“formacao”));
c1.setReservista(rs.getString(“reservista”));
c1.setHabilitacao(rs.getString(“habilitacao”));
c1.setTitulo(rs.getString(“titulo_num”));
c1.setSecao(rs.getString(“titulo_secao”));
c1.setZona(rs.getString(“titulo_zona”));
c1.setNomePai(rs.getString(“pai”));
c1.setNomeMae(rs.getString(“mae”));
c1.setNomeConjuge(rs.getString(“conjuge”));
c1.setAltura(rs.getString(“altura”));
c1.setPeso(rs.getString(“peso”));
c1.setCutis(rs.getString(“cutis”));
c1.setSangue(rs.getString(“tipo_sangue”));
c1.setOlho(rs.getString(“olho”));
c1.setCabelo(rs.getString(“cabelo”));
c1.setObservacao(rs.getString(“observacao”));
minhaLista.add(c1);
}
rs.close();
stmt.close();
return minhaLista;
}

public List&lt;Funcionario&gt; getListaEndereco(Integer codigo) throws SQLException {
    String sql = "select * from enderecofunc where codFunc = ?";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    stmt.setInt(1, codigo);
    ResultSet rs = stmt.executeQuery();
    List&lt;Funcionario&gt; minhaLista = new ArrayList&lt;Funcionario&gt;();
    while (rs.next()) {
        Funcionario c1 = new Funcionario();
        c1.setEndereco(rs.getString("endereco"));
        c1.setBairro(rs.getString("bairro"));
        c1.setCidade(rs.getString("cidade"));
        c1.setEstado(rs.getInt("estado"));
        c1.setCep(rs.getString("cep"));
        c1.setFone(rs.getString("tel_fixo"));
        c1.setCelular(rs.getString("tel_celular"));
        c1.setFoneRecado(rs.getString("tel_recado"));
        c1.setEmail(rs.getString("email"));
        minhaLista.add(c1);
    }
    rs.close();
    stmt.close();
    return minhaLista;
}

public List&lt;Funcionario&gt; getListaFuncionais(Integer codigo) throws SQLException {

    String sql = "select * from dadosfuncionaisfuncionario where codFunc = ?";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    stmt.setInt(1, codigo);
    ResultSet rs = stmt.executeQuery();

    List&lt;Funcionario&gt; minhaLista = new ArrayList&lt;Funcionario&gt;();

    while (rs.next()) {
        Funcionario c1 = new Funcionario();
        c1.setCodSisFunc(rs.getInt("codSistema"));
        c1.setRs(rs.getString("rs"));
        c1.setCargo(rs.getInt("cargo"));
        c1.setDataCargo(rs.getString("data_cargo"));
        c1.setEquipe(rs.getInt("equipe"));
        c1.setDataNomeacao(rs.getString("data_nomeacao"));
        c1.setDataAdmissao(rs.getString("data_admissao"));
        c1.setDataUnidade(rs.getString("data_adm_unidade"));
        c1.setFuncao(rs.getInt("funcao"));
        c1.setDataFuncao(rs.getString("data_funcao"));
        c1.setPis(rs.getString("pis"));
        c1.setSituacao(rs.getInt("situacao"));
        minhaLista.add(c1);
    }

    rs.close();
    stmt.close();
    return minhaLista;
}[/code]

Classe Funcionario

[code]public class Funcionario {

private Long codFunc;
private String nome;
private String rg;
private String cpf;
private String nascimento;
private int estadocivil;
private int escolaridade;
private String formacao;
private String reservista;
private String habilitacao;
private String titulo;
private String secao;
private String zona;
private String endereco;
private String bairro;
private String cidade;
private int estado;
private String cep;
private String foneRecado;
private String fone;
private String celular;
private String email;
private String nomePai;
private String nomeMae;
private String nomeConjuge;
private String altura;
private String peso;
private String cutis;
private String sangue;
private String cabelo;
private String olho;
private String observacao;
private int codSisFunc;
private String rs;
private String nomeAbreviado;
private int cargo;
private String dataCargo;
private int equipe;
private String dataNomeacao;
private String dataAdmissao;
private String dataFuncao;
private String dataUnidade;
private int funcao;
private String pis;
private int situacao;
private int colete;
private String numColete;
private int camisa;
private int calca;
private int cobertura;
private int cinto;
private int cintoOperacional;
private int coturno;
private int jaqueta;
private int capa;
private int primeraEscolha;
private int primeiroPeriodo;
private int segundaEscoloha;
private int segundoPeriodo;
private int terceiraEscolha;
private int terceiroPeriodo;
private String foto;
private String operador;
private String data;
private String hora;

public String getAltura() {
    return altura;
}

public void setAltura(String altura) {
    this.altura = altura;
}

public String getBairro() {
    return bairro;
}

public void setBairro(String bairro) {
    this.bairro = bairro;
}

public String getCabelo() {
    return cabelo;
}

public void setCabelo(String cabelo) {
    this.cabelo = cabelo;
}

public int getCargo() {
    return cargo;
}

public void setCargo(int cargo) {
    this.cargo = cargo;
}

public String getCelular() {
    return celular;
}

public void setCelular(String celular) {
    this.celular = celular;
}

public String getCep() {
    return cep;
}

public void setCep(String cep) {
    this.cep = cep;
}

public String getCidade() {
    return cidade;
}

public void setCidade(String cidade) {
    this.cidade = cidade;
}

public Long getCodFunc() {
    return codFunc;
}

public void setCodFunc(Long codFunc) {
    this.codFunc = codFunc;
}

public int getCodSisFunc() {
    return codSisFunc;
}

public void setCodSisFunc(int codSisFunc) {
    this.codSisFunc = codSisFunc;
}

public String getCpf() {
    return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
}

public String getCutis() {
    return cutis;
}

public void setCutis(String cutis) {
    this.cutis = cutis;
}

public String getData() {
    return data;
}

public void setData(String data) {
    this.data = data;
}

public String getDataAdmissao() {
    return dataAdmissao;
}

public void setDataAdmissao(String dataAdmissao) {
    this.dataAdmissao = dataAdmissao;
}

public String getDataCargo() {
    return dataCargo;
}

public void setDataCargo(String dataCargo) {
    this.dataCargo = dataCargo;
}

public String getDataFuncao() {
    return dataFuncao;
}

public void setDataFuncao(String dataFuncao) {
    this.dataFuncao = dataFuncao;
}

public String getDataNomeacao() {
    return dataNomeacao;
}

public void setDataNomeacao(String dataNomeacao) {
    this.dataNomeacao = dataNomeacao;
}

public String getDataUnidade() {
    return dataUnidade;
}

public void setDataUnidade(String dataUnidade) {
    this.dataUnidade = dataUnidade;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

public int getEscolaridade() {
    return escolaridade;
}

public void setEscolaridade(int escolaridade) {
    this.escolaridade = escolaridade;
}

public int getEstado() {
    return estado;
}

public void setEstado(int estado) {
    this.estado = estado;
}

public int getEstadocivil() {
    return estadocivil;
}

public void setEstadocivil(int estadocivil) {
    this.estadocivil = estadocivil;
}

public String getFone() {
    return fone;
}

public void setFone(String fone) {
    this.fone = fone;
}

public String getFoneRecado() {
    return foneRecado;
}

public void setFoneRecado(String foneRecado) {
    this.foneRecado = foneRecado;
}

public String getFormacao() {
    return formacao;
}

public void setFormacao(String formacao) {
    this.formacao = formacao;
}

public int getFuncao() {
    return funcao;
}

public void setFuncao(int funcao) {
    this.funcao = funcao;
}

public String getHabilitacao() {
    return habilitacao;
}

public void setHabilitacao(String habilitacao) {
    this.habilitacao = habilitacao;
}

public String getHora() {
    return hora;
}

public void setHora(String hora) {
    this.hora = hora;
}

public String getNascimento() {
    return nascimento;
}

public void setNascimento(String nascimento) {
    this.nascimento = nascimento;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getNomeAbreviado() {
    return nomeAbreviado;
}

public void setNomeAbreviado(String nomeAbreviado) {
    this.nomeAbreviado = nomeAbreviado;
}

public String getNomeConjuge() {
    return nomeConjuge;
}

public void setNomeConjuge(String nomeConjuge) {
    this.nomeConjuge = nomeConjuge;
}

public String getNomeMae() {
    return nomeMae;
}

public void setNomeMae(String nomeMae) {
    this.nomeMae = nomeMae;
}

public String getNomePai() {
    return nomePai;
}

public void setNomePai(String nomePai) {
    this.nomePai = nomePai;
}

public String getNumColete() {
    return numColete;
}

public void setNumColete(String numColete) {
    this.numColete = numColete;
}

public String getObservacao() {
    return observacao;
}

public void setObservacao(String observacao) {
    this.observacao = observacao;
}

public String getOlho() {
    return olho;
}

public void setOlho(String olho) {
    this.olho = olho;
}

public String getOperador() {
    return operador;
}

public void setOperador(String operador) {
    this.operador = operador;
}

public String getPeso() {
    return peso;
}

public void setPeso(String peso) {
    this.peso = peso;
}

public String getPis() {
    return pis;
}

public void setPis(String pis) {
    this.pis = pis;
}

public String getReservista() {
    return reservista;
}

public void setReservista(String reservista) {
    this.reservista = reservista;
}

public String getRg() {
    return rg;
}

public void setRg(String rg) {
    this.rg = rg;
}

public String getRs() {
    return rs;
}

public void setRs(String rs) {
    this.rs = rs;
}

public String getSangue() {
    return sangue;
}

public void setSangue(String sangue) {
    this.sangue = sangue;
}

public String getSecao() {
    return secao;
}

public void setSecao(String secao) {
    this.secao = secao;
}

public String getTitulo() {
    return titulo;
}

public void setTitulo(String titulo) {
    this.titulo = titulo;
}

public String getZona() {
    return zona;
}

public void setZona(String zona) {
    this.zona = zona;
}

}[/code]

Tela Funcionario

[code]public class JFormFuncionario extends javax.swing.JFrame {

DataHoraAtual dataHora = new DataHoraAtual();
//DefaultTableModel tmFuncionario = new DefaultTableModel(null, new String[]{"Código", "Nome", "Nome Abreviado"});
List&lt;Funcionario&gt; funcionarioDados;
List&lt;Funcionario&gt; funcionarioEndereco;
List&lt;Funcionario&gt; funcionarioDadosFuncionais;
ListSelectionModel lsmFuncionario;
FuncionarioTableModel modelo;

/**
 * Creates new form JFormFuncionario
 */
public JFormFuncionario() throws SQLException {
    initComponents();
    desabilitaCampos();
    inicializaBotao();
    jToperador.setVisible(false);
    inicialisarCombos();
    jTsituacao.setVisible(false);
    jTfoto.setVisible(false);

    modelo = new FuncionarioTableModel();
    jTable1.setModel(modelo);

    listarFuncionario();
}

public void listarFuncionario() throws SQLException {
    FuncionarioDao dao = new FuncionarioDao();
    funcionarioDados = dao.getListaDados(jTpesquisa.getText() + "%");
    //mostraDados(funcionarioDados);
    modelo.addListaDeFuncionario(funcionarioDados);
}

//Metodo que mostra a pesquisa no jTable1 pelo paramentro recebido do metodo buscarPosto()

/*
* private void mostraDados(List<Funcionario> funcionario) { while
* (tmFuncionario.getRowCount() > 0) { tmFuncionario.removeRow(0); } if
* (funcionario.size() == 0) { } else { String[] linha = new String[]{null,
* null, null}; for (int i = 0; i < funcionario.size(); i++) {
* tmFuncionario.addRow(linha);
* tmFuncionario.setValueAt(funcionarioDados.get(i).getCodFunc(), i, 0);
* tmFuncionario.setValueAt(funcionarioDados.get(i).getNome(), i, 1);
* tmFuncionario.setValueAt(funcionarioDados.get(i).getNomeAbreviado(), i,
* 2); } } }
*/
//Metodo que seta os valores nos jTextFields e nos jRadioButtons da linha selecionada na jTable1
private void jTtabelaLinhaSelecionada(JTable tabela) {
if (jTable1.getSelectedRow() != -1) {
habilitaCampos();
limpaCampos();
jTcodFunc.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getCodFunc()));
jTnomeFunc.setText(funcionarioDados.get(tabela.getSelectedRow()).getNome());
jTnomeAbreviado.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getNomeAbreviado()));
jTrg.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getRg()));
jTcpf.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getCpf()));
jTnascimento.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getNascimento()));
jCestadoCivil.setSelectedIndex(funcionarioDados.get(tabela.getSelectedRow()).getEstadocivil());
jCescolaridade.setSelectedIndex(funcionarioDados.get(tabela.getSelectedRow()).getEscolaridade());
jTformacao.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getFormacao()));
jTreservista.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getReservista()));
jThabilitacao.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getHabilitacao()));
jTtitulo.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getTitulo()));
jTsecao.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getSecao()));
jTzona.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getZona()));
jTnomePai.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getNomePai()));
jTnomeMae.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getNomeMae()));
jTnomeConjuge.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getNomeConjuge()));
jTaltura.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getAltura()));
jTpeso.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getPeso()));
jTcutis.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getCutis()));
jTsangue.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getSangue()));
jTolho.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getOlho()));
jTcabelo.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getCabelo()));
jTobservacao.setText(String.valueOf(funcionarioDados.get(tabela.getSelectedRow()).getObservacao()));

        try {
            FuncionarioDao dao = new FuncionarioDao();
            int codigo = Integer.parseInt(jTcodFunc.getText());
            String caminho = dao.caminhoFoto(codigo);
            //carregarFoto(caminho);
        } catch (SQLException ex) {
            Logger.getLogger(JFormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
        }

        jBnovo.setEnabled(false);
        jBsalvar.setEnabled(true);
        jBeditar.setEnabled(true);
        jBexcluir.setEnabled(true);
        jBcancelar.setEnabled(true);
        jBfoto.setEnabled(true);
    } else {
        limpaCampos();
    }
}

private void jTtabelaLinhaSelecionadaEndereco(JTable tabela) {
    if (jTable1.getSelectedRow() != -1) {
        try {
            FuncionarioDao dao = new FuncionarioDao();
            int codigo = Integer.parseInt(jTcodFunc.getText());
            funcionarioEndereco = dao.getListaEndereco(codigo);
        } catch (SQLException ex) {
            Logger.getLogger(JFormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
        }
        //long a = jTable1.getSelectedRow();
        //JOptionPane.showMessageDialog(null, a);
        jTendereco.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getEndereco()));
        jTbairro.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getBairro()));
        jTcidade.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCidade()));
        jCestado.setSelectedIndex(funcionarioEndereco.get(tabela.getSelectedRow()).getEstado());
        jTcep.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCep()));
        jTfone.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getFone()));
        jTcelular.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCelular()));
        jTfoneRecado.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getFoneRecado()));
        jTemail.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getEmail()));
    }
}

private void jTtabelaLinhaSelecionadaDadosFuncionais(JTable tabela) {
    if (jTable1.getSelectedRow() != -1) {
        try {
            FuncionarioDao dao = new FuncionarioDao();
            int codigo = Integer.parseInt(jTcodFunc.getText());
            funcionarioDadosFuncionais = dao.getListaFuncionais(codigo);
        } catch (SQLException ex) {
            Logger.getLogger(JFormFuncionario.class.getName()).log(Level.SEVERE, null, ex);
        }
        jTcodSisFunc.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getCodSisFunc()));
        jTrs.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getRs()));
        jCcargo.setSelectedIndex(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getCargo());
        jTdataCargo.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getDataCargo()));
        jCturno.setSelectedIndex(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getEquipe());
        jTdataNomeacao.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getDataNomeacao()));
        jTdataAdmissao.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getDataAdmissao()));
        jTdataUnidade.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getDataUnidade()));
        jCfuncao.setSelectedIndex(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getFuncao());
        jTdataSituacao.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getDataFuncao()));
        jTpis.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getPis()));
        jTsituacao.setText(String.valueOf(funcionarioDadosFuncionais.get(tabela.getSelectedRow()).getSituacao()));

        if (jTsituacao.getText().equals(&quot;1&quot;)) {
            jRativo.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;2&quot;)) {
            jRlicencaMedica.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;3&quot;)) {
            jRlicencaTrabalho.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;4&quot;)) {
            jRemprestadoP.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;5&quot;)) {
            jRemprestadoD.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;6&quot;)) {
            jRaposentado.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;7&quot;)) {
            jRtransferido.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;8&quot;)) {
            jRexoneradoP.setSelected(true);
        } else if (jTsituacao.getText().equals(&quot;9&quot;)) {
            jRexonerado.setSelected(true);
        }
    }
}[/code][code]    private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     
    jTtabelaLinhaSelecionada(jTable1);
    jTtabelaLinhaSelecionadaEndereco(jTable1);
    jTtabelaLinhaSelecionadaDadosFuncionais(jTable1);
}[/code]

Classe FuncionarioTableModel

[code]public class FuncionarioTableModel extends AbstractTableModel {

private static final long serialVersionUID = 1L;
/*
 * Lista de Cliente que representam as linhas.
 */
private List&lt;Funcionario&gt; linhas;
/*
 * Array de Strings com o nome das colunas.
 */
private String[] colunas = new String[]{
    "Código", "Nome", "Nome Abreviado"};

/*
 * Cria um ClienteTableModel vazio.
 */
public FuncionarioTableModel() {
    linhas = new ArrayList&lt;Funcionario&gt;();
}

/*
 * Cria um ClienteTableModel carregado com a lista de Cliente especificada.
 */
public FuncionarioTableModel(List&lt;Funcionario&gt; listaDeFuncionario) {
    linhas = new ArrayList&lt;Funcionario&gt;(listaDeFuncionario);
}

/*
 * Retorna a quantidade de colunas.
 */
@Override
public int getColumnCount() {
    // Está retornando o tamanho do array &quot;colunas&quot;.  
    return colunas.length;
}

/*
 * Retorna a quantidade de linhas.
 */
@Override
public int getRowCount() {
    // Retorna o tamanho da lista de Funcionario.  
    return linhas.size();
}

@Override
public String getColumnName(int columnIndex) {
    // Retorna o conteúdo do Array que possui o nome das colunas  
    return colunas[columnIndex];
};  

@Override
public Class&lt;?&gt; getColumnClass(int columnIndex) {
    return String.class;
};  


@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    Funcionario funcionario = linhas.get(rowIndex);

    // Retorna o campo referente a coluna especificada.  
    // Aqui é feito um switch para verificar qual é a coluna  
    // e retornar o campo adequado. As colunas sãoas mesmas  
    // que foram especificadas no array &quot;colunas&quot;.  
    switch (columnIndex) {
        // Seguindo o exemplo: &quot;Tipo&quot;,&quot;Data de Cadastro&quot;, &quot;Nome&quot;, &quot;Idade&quot;};  
        case 0:
            return funcionario.getCodFunc();
        case 1:
            return funcionario.getNome();
        case 2:
            return funcionario.getNomeAbreviado();
        default:
            // Isto não deveria acontecer...  
            throw new IndexOutOfBoundsException(&quot;columnIndex out of bounds&quot;);
    }
}

public void setValueAt(Funcionario aValue, int rowIndex) {
    Funcionario funcionario = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado  

    funcionario.setNome(aValue.getNome());
    funcionario.setNomeAbreviado(aValue.getNomeAbreviado());

    fireTableCellUpdated(rowIndex, 0);
    fireTableCellUpdated(rowIndex, 1);

}

/*
 * @Override public void setValueAt(Object aValue, int rowIndex, int
 * columnIndex) { Funcionario funcionario = linhas.get(rowIndex);; //
 * Carrega o item da linha que deve ser modificado      *
 * switch (columnIndex) { // Seta o valor do campo respectivo case 0:
 * funcionario.setNome(aValue.toString()); case 1:
 * funcionario.setNomeAbreviado(aValue.toString()); case 2:
 *
 * default: // Isto não deveria acontecer... throw new
 * IndexOutOfBoundsException(&quot;columnIndex out of bounds&quot;);
 *
 * fireTableCellUpdated(rowIndex, columnIndex); // Notifica a atualização da
 * célula } }
 */
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
    return false;
}

public Funcionario getFuncionario(int indiceLinha) {
    return linhas.get(indiceLinha);
}

/*
 * Adiciona um registro.
 */
public void addFuncionario(Funcionario m) {
    // Adiciona o registro.  
    linhas.add(m);


    int ultimoIndice = getRowCount() - 1;

    fireTableRowsInserted(ultimoIndice, ultimoIndice);
}

/*
 * Remove a linha especificada.
 */
public void removeFuncionario(int indiceLinha) {
    linhas.remove(indiceLinha);

    fireTableRowsDeleted(indiceLinha, indiceLinha);
}

/*
 * Adiciona uma lista de Cliente ao final dos registros.
 */
public void addListaDeFuncionario(List&lt;Funcionario&gt; funcionario) {
    // Pega o tamanho antigo da tabela.  
    int tamanhoAntigo = getRowCount();

    // Adiciona os registros.  
    linhas.addAll(funcionario);

    fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);
}

/*
 * Remove todos os registros.
 */
public void limpar() {
    linhas.clear();
    fireTableDataChanged();
}

/*
 * Verifica se este table model esta vazio.
 */
public boolean isEmpty() {
    return linhas.isEmpty();
}

}[/code]

@Chimini, o erro java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 significa que vc tá chamando o índice 1 em uma lista que tem apenas um registro, ou seja, você chamou um cara que não existe. No Java, o primeiro índice de uma lista é o 0.
Na mensagem de erro, a linha que acontece o erro é a 147 da classe JFormFuncionário.

Verifique nesta linha se o valor passado para a linha está correto.

Bom dia Lugaid.
Então porque quando clico na primeira linha da jTable ele retorna todos os valores corretos de todas as List<>, e nas outras linhas da este erro, o certo era para dar erro tb não era???
Ou eu estou enganado???

private void jTtabelaLinhaSelecionadaEndereco(JTable tabela) { if (jTable1.getSelectedRow() != -1) { try { FuncionarioDao dao = new FuncionarioDao(); int codigo = Integer.parseInt(jTcodFunc.getText()); funcionarioEndereco = dao.getListaEndereco(codigo); } catch (SQLException ex) { Logger.getLogger(JFormFuncionario.class.getName()).log(Level.SEVERE, null, ex); } //long a = jTable1.getSelectedRow(); //JOptionPane.showMessageDialog(null, a); jTendereco.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getEndereco())); jTbairro.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getBairro())); jTcidade.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCidade())); jCestado.setSelectedIndex(funcionarioEndereco.get(tabela.getSelectedRow()).getEstado()); jTcep.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCep())); jTfone.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getFone())); jTcelular.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getCelular())); jTfoneRecado.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getFoneRecado())); jTemail.setText(String.valueOf(funcionarioEndereco.get(tabela.getSelectedRow()).getEmail())); } }

Obs: Este erro que vc me disse está na linha 12 no código acima.

opa, blz??

mas então… não era o que o erro tá dizendo… o erro no seu código tá nesse método…
mais precisamente, na última linha…

vê se aí tá passando os valores certos…

/* 
* Adiciona uma lista de Cliente ao final dos registros. 
*/  
public void addListaDeFuncionario(List<Funcionario> funcionario) {  
    // Pega o tamanho antigo da tabela.    
    int tamanhoAntigo = getRowCount();  
  
    // Adiciona os registros.    
    linhas.addAll(funcionario);  
  
    fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);  
}

Está passando os valores sim Lugaid. Ta muito estranho isso, porque o primeiro registro da jTable ele pega normalmente.

O problema é que você está tentando associar três listas diferentes de dados à uma mesma tabela, essas listas não tem o mesmo tamanho nem a mesma ordem.

Crie uma lista de endereços e uma lista de dados funcionais dentro da classe Funcionáro, popule tudo somente no listarFuncionario, e apague/edite o resto do teu código de acordo com essa nova lógica.

Use sempre o TableModel para gerenciar sua lista de dados. Não fique recarregando coisas do banco. Além de ser uma operação desnecessária, tem alto custo computacional. Por exemplo, seu método poderia perguntar diretamente ao TableModel pelo funcionário selecionado:

[code]public FuncionarioTableModel getModel() {
return (FuncionarioTableModel) tabela.getModel();;
}

private void jTtabelaLinhaSelecionadaDadosFuncionais(JTable tabela) {
//Já que não vamos fazer nada em caso de não seleção, é melhor deixar isso evidente retornando direto.
//Assim evitamos que o código todo fique indentado e ainda evitamos que quem leia a função
//precise ir até o final do código para descobrir que nada está fora do if.
if (jTable1.getSelectedRow() != -1) {
return;
}

    //Pedimos diretamente ao model o funcionario da linha selecionada. 
    //Sem try, sem dao, sem bagunça.
    Funcionario funcionario = getModel().getFuncionario(tabela.getSelectedRow());

    //Com o objeto na mão, os sets ficam bem mais simples
    jTcodSisFunc.setText(funcionario.getCodSisFunc());  
    jTrs.setText(funcionario.getRs().toString());  
    jCcargo.setSelectedIndex(funcionario.getCargo());  
    //Otimi o resto dos sets... vc já deve ter entendido a idéia.

    //Essa forma, além de mais limpa e simples que o if, marca também como false quando a seleção mudar  
    jRativo.setSelected(jTsituacao.getText().equals("1"));
    jRlicencaMedica.setSelected(jTsituacao.getText().equals("2"));  
    //Omiti o resto dos sets novamente...
}  [/code]

A idéia de se ter um TableModel é justamente trabalhar com a lista de objetos na tela. E não ficar sincronizando para dentro e para fora da tabela com um campo de id. Se a lista de funcionários está dentro do Model, use-a. Foi para isso que você colocou ela lá. :wink:

ViniGodoy, deu certo.
Só tive que colocar a codificação dentro do “if (jTable1.getSelectedRow() != -1)” e retirar o return que rodou redondinho.
Muito obrigado. Você não me quebrou um galho e sim uma árvore.
Vlw