bom dia fiz da seguinte forma:
AbstractModelServico.java
package model;
import javax.swing.table.AbstractTableModel;
import java.util.List;
import java.util.ArrayList;
import javax.swing.table.TableModel;
import java.util.Collections;
class ServicoTableModel extends AbstractTableModel {
private static final int COL_NOME = 0;
private static final int COL_FONE = 1;
private static final int COL_RUA = 2;
private static final int COL_NUM = 3;
private static final int COL_SITUACAO = 4;
private static final int COL_BAIXAR = 5;
private static final int COL_COD = 6;
private List<Servicos> lista;
public ServicoTableModel(List<Servicos> lista) {
this.lista = lista;
}
public int getRowCount() {
return lista.size();
}
public int getColumnCount() {
return 7;
}
public String getColumnName(int column) {
if (column == COL_NOME) return "NOME";
if (column == COL_FONE) return "FONE";
if (column == COL_RUA) return "RUA";
if (column == COL_NUM) return "Nº";
if (column == COL_SITUACAO) return "SITUACAO";
if (column == COL_BAIXAR) return "BAIXAR";
if (column == COL_COD) return "COD";
return ""; //Nunca deve ocorrer
}
public Object getValueAt(int row, int column) {
Servicos titulo = lista.get(row);
if (column == COL_NOME) return titulo.getNomeContrib();
else if (column == COL_FONE) return titulo.getFoneContrib();
else if (column == COL_RUA) return titulo.getRuaContrib();
else if (column == COL_NUM) return titulo.getNumeroCasaContrib();
else if (column == COL_SITUACAO) return titulo.getNomeSituacoes();
else if (column == COL_BAIXAR) return titulo.getSel();
else if (column == COL_COD) return titulo.getCodSolicitacao();
throw new IllegalArgumentException("Invalid column");
//return ""; //Nunca deve ocorrer
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Servicos titulo = lista.get(rowIndex);
if (columnIndex== COL_NOME) titulo.setNomeContrib(aValue.toString());
else if (columnIndex== COL_FONE) titulo.setFoneContrib(aValue.toString());
else if (columnIndex== COL_RUA) titulo.setRuaContrib(aValue.toString());
else if (columnIndex== COL_NUM) titulo.setNumeroContrib((Integer)aValue);
else if (columnIndex== COL_SITUACAO) titulo.setNomeSituacoes(aValue.toString());
else if (columnIndex== COL_BAIXAR) titulo.setSel((Boolean)aValue);
else if (columnIndex== COL_COD) titulo.setCodSolicitacao((Integer)aValue);
}
public Class<?> getColumnClass(int columnIndex) {
if (columnIndex == COL_NOME) {
return String.class;
} else if (columnIndex == COL_FONE) {
return String.class;
} else if (columnIndex == COL_RUA) {
return String.class;
} else if (columnIndex == COL_NUM) {
return String.class;
} else if (columnIndex == COL_SITUACAO) {
return String.class;
} else if (columnIndex == COL_BAIXAR) {
return String.class;
} else if (columnIndex == COL_COD) {
return String.class;
} else {
return String.class;
}
}
public Servicos get(int row) {
return lista.get(row);
}
}
aqui ta a classe Servicos
package model;
import java.util.ArrayList;
public class Servicos {
java.sql.Timestamp datahora;
boolean sel;
private int numeroCasaContrib,codSolicitacao,idsituacao;
private String nomeContrib,nomeSetor,foneContrib,ruaContrib,nomeSituacoes,bairroContrib,servico,justificativa;
private ArrayList linhas = null;
private String[] colunas = null;
public Servicos(
String nomeContrib,
String foneContrib,
String ruaContrib,
int numeroCasaContrib,
String nomeSituacoes,
boolean sel,
int codSolicitacao,
String nomeSetor,
String bairroContrib,
java.sql.Timestamp datahora,
String servico,
String justificativa,
int idsituacao
) {
this.nomeContrib = nomeContrib;
this.foneContrib = foneContrib;
this.ruaContrib = ruaContrib;
this.numeroCasaContrib = numeroCasaContrib;
this.nomeSituacoes = nomeSituacoes;
this.sel = sel;
this.codSolicitacao = codSolicitacao;
this.nomeSetor = nomeSetor;
this.bairroContrib = bairroContrib;
this.datahora = datahora;
this.servico = servico;
this.justificativa = justificativa;
this.idsituacao = idsituacao;
}
//nome get and set
public String getNomeContrib() {
return this.nomeContrib;
}
public void setNomeContrib(String NomeContrib) {
this.nomeContrib = NomeContrib;
}
//fone get and set
public String getFoneContrib() {
return this.foneContrib;
}
public void setFoneContrib(String FoneContrib) {
this.foneContrib = FoneContrib;
}
//rua get and set
public String getRuaContrib() {
return this.ruaContrib;
}
public void setRuaContrib(String RuaContrib) {
this.ruaContrib = RuaContrib;
}
//numero casa get and set
public int getNumeroCasaContrib() {
return this.numeroCasaContrib;
}
public void setNumeroContrib(int NumeroCasaContrib) {
this.numeroCasaContrib = NumeroCasaContrib;
}
//fone get and set
public String getNomeSituacoes() {
return this.nomeSituacoes;
}
public void setNomeSituacoes(String NomeSituacoes) {
this.nomeSituacoes = NomeSituacoes;
}
//fone get and set
public boolean getSel() {
return this.sel;
}
public void setSel(boolean Sel) {
this.sel = Sel;
}
//fone get and set
public int getCodSolicitacao() {
return this.codSolicitacao;
}
public void setCodSolicitacao(int CodSolicitacao) {
this.codSolicitacao = CodSolicitacao;
}
//fone get and set
public String getNomeSetor() {
return this.nomeSetor;
}
public void setNomeSetor(String NomeSetor) {
this.nomeSetor = NomeSetor;
}
//fone get and set
public String getBairroContrib() {
return this.bairroContrib;
}
public void setBairroContrib(String BairroContrib) {
this.bairroContrib = BairroContrib;
}
//fone get and set
public java.sql.Timestamp getDataHora() {
return this.datahora;
}
public void setDataHora(java.sql.Timestamp DataHora) {
this.datahora = DataHora;
}
//fone get and set
public String getServico() {
return this.servico;
}
public void setServico(String Servico) {
this.servico = Servico;
}
//fone get and set
public String getJustificativa() {
return this.justificativa;
}
public void setJustifivatica(String Justificativa) {
this.justificativa = Justificativa;
}
//fone get and set
public int getIdSituacao() {
return this.idsituacao;
}
public void setIdSituacao(int IdSituacao) {
this.idsituacao = IdSituacao;
}
}
aqui ta a TableModel2
package model;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.table.AbstractTableModel;
public class TableModel2 extends AbstractTableModel{
private ArrayList linhas = null;
private String [] colunas = null;
private boolean [] colsEdicao;
public TableModel2(ArrayList dados, String[] colunas, boolean [] edicao){
setLinhas(dados);
setColunas(colunas);
colsEdicao = edicao;
}
public int getColumnCount() {return getColunas().length;}
public int getRowCount() {return getLinhas().size();}
public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String []
String [] linha = (String [])getLinhas().get(rowIndex);
// Retorna o objeto que esta na coluna
return linha[columnIndex];
}
public String[] getLinha(int row)
{
String [] linha = (String[])getLinhas().get(row);
return linha;
}
public String[] getColunas() {return colunas;}
public ArrayList getLinhas() {return linhas;}
public void setColunas(String[] strings) {colunas = strings;}
public void setLinhas(ArrayList list) {linhas = list;}
public void setValueAt(Object value, int row, int col){
// Obtem a linha, que é uma String []
String [] linha = (String [])getLinhas().get(row);
// Altera o conteudo no indice da coluna passado
linha[col] = (String)value;
// dispara o evento de celula alterada
fireTableCellUpdated(row,col);
}
public boolean isCellEditable(int row, int col){
return colsEdicao[col];
}
public void addRow( String [] dadosLinha){
getLinhas().add(dadosLinha);
// Informa a jtable de que houve linhas incluidas no modelo
// COmo adicionamos no final, pegamos o tamanho total do modelo
// menos 1 para obter a linha incluida.
int linha = getLinhas().size()-1;
fireTableRowsInserted(linha,linha);
return;
}
public void removeRow(int row){
getLinhas().remove(0);
// informa a jtable que houve dados deletados passando a
// linha removida
fireTableRowsDeleted(row,row);
}
public boolean removeRow(String val, int col){
// obtem o iterator
Iterator i = getLinhas().iterator();
int linha = 0;
// Faz um looping em cima das linhas
while(i.hasNext()){
// Obtem as colunas da linha atual
String[] linhaCorrente = (String[])i.next();
linha++;
// compara o conteudo String da linha atual na coluna desejada
// com o valor informado
if( linhaCorrente[col].equals(val) ){
getLinhas().remove(linha);
// informa a jtable que houve dados deletados passando a
// linha removida
fireTableRowsDeleted(linha,linha);
return true;
}
}
// Nao encontrou nada
return false;
}
public String getColumnName(int col){
return getColunas()[col];
}
}
aqui ta parte da PesquisaSolicitacao como estou chamando para mostrar a table.
public class PesquisarSolicitacao extends javax.swing.JDialog {
String pesquisa = "",nomeAPesquisar;
private NovoServico parent;
private TableRowSorter<TableModel> sorter;
ServicoTableModel model;
//novo 26/04/2012
final ServicoDao lista = new ServicoDao();
List<Servicos> lista2 = lista.ServicoDao();
//...
model = new ServicoTableModel(lista2);
TablePesquisa.setModel(model);
TablePesquisa.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
//...
//aki quero q cada vez que eu digitar uma letra gostaria que fosse selecionando uma linha, mas não ta funcionando.
private void FieldPesquisaKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String pesquisa = FieldPesquisa.getText();
List<Servicos> resultados = new ArrayList<Servicos>();
for (Servicos p : lista2) {
if (p.getNomeContrib().startsWith(pesquisa)) {
resultados.add(p);
}
}
}
ALGUEM PODE ME DAR UMA AJUDINHA??
valeu