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 "AWT-EventQueue-0" 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<Funcionario> 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<Funcionario> minhaLista = new ArrayList<Funcionario>();
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<Funcionario> 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<Funcionario> minhaLista = new ArrayList<Funcionario>();
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<Funcionario> funcionarioDados;
List<Funcionario> funcionarioEndereco;
List<Funcionario> 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("1")) {
jRativo.setSelected(true);
} else if (jTsituacao.getText().equals("2")) {
jRlicencaMedica.setSelected(true);
} else if (jTsituacao.getText().equals("3")) {
jRlicencaTrabalho.setSelected(true);
} else if (jTsituacao.getText().equals("4")) {
jRemprestadoP.setSelected(true);
} else if (jTsituacao.getText().equals("5")) {
jRemprestadoD.setSelected(true);
} else if (jTsituacao.getText().equals("6")) {
jRaposentado.setSelected(true);
} else if (jTsituacao.getText().equals("7")) {
jRtransferido.setSelected(true);
} else if (jTsituacao.getText().equals("8")) {
jRexoneradoP.setSelected(true);
} else if (jTsituacao.getText().equals("9")) {
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<Funcionario> 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<Funcionario>();
}
/*
* Cria um ClienteTableModel carregado com a lista de Cliente especificada.
*/
public FuncionarioTableModel(List<Funcionario> listaDeFuncionario) {
linhas = new ArrayList<Funcionario>(listaDeFuncionario);
}
/*
* Retorna a quantidade de colunas.
*/
@Override
public int getColumnCount() {
// Está retornando o tamanho do array "colunas".
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<?> 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 "colunas".
switch (columnIndex) {
// Seguindo o exemplo: "Tipo","Data de Cadastro", "Nome", "Idade"};
case 0:
return funcionario.getCodFunc();
case 1:
return funcionario.getNome();
case 2:
return funcionario.getNomeAbreviado();
default:
// Isto não deveria acontecer...
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
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("columnIndex out of bounds");
*
* 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<Funcionario> 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]