public class SimpleTableModel{
public ArrayList linhas = null;
public String [] colunas = null;
private boolean [] colsEdicao;
/**
* Contrutor para a classe, recebendo os dados a serem exibidos
* e as colunas que devem ser criadas.
*/
public SimpleTableModel(ArrayList dados, String[] colunas, boolean [] edicao){
setLinhas(dados);
setColunas(colunas);
colsEdicao = edicao;
}
/**
* Retorna o numero de colunas no modelo
*/
//*************public int getColumnCount() {return getColunas().length;}
/**
* Retorna o numero de linhas existentes no modelo
*/
//*************public int getRowCount() {return getLinhas().size();}
/**
* Obtem o valor na linha e coluna
*/
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[] getColunas() {return colunas;}
public ArrayList getLinhas() {return linhas;}
public void setColunas(String[] strings) {colunas = strings;}
public void setLinhas(ArrayList list) {linhas = list;}
/**
* Seta o valor na linha e coluna
* @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
*/
/* 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);
}*/
/**
* Retorna se a celula pode ser editada
* @see javax.swing.table.TableModel#isCellEditable(int, int)
*/
public boolean isCellEditable(int row, int col){
return colsEdicao[col];
}
/**
* Adiciona o array na linha
*/
public void addRow( String [] dadosLinha){
getLinhas().add(dadosLinha);
//return;
}
/**
* Remove a linha pelo indice informado
* @param row
*/
public void removeRow(int row){
getLinhas().remove(0);
// informa a jtable que houve dados deletados passando a
// linha reovida
//fireTableRowsDeleted(row,row);
}
/**
* Remove a linha pelo valor da coluna informada
* @param val
* @param col
* @return
*/
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;
}
/**
* Retorna o nome da coluna.
* @see javax.swing.table.TableModel#getColumnName(int)
*/
public String getColumnName(int col){
return getColunas()[col];
}
}
O código dele é mais ou menos essa classe acima, só que quero apenas extrair algumas funções daí, só que não funcionam.
O que preciso na verdade, é incluir uma JTable dentro de um JScrollPane, que foi o que já consegui e dentro de eventos e funções de botões, irei manipular a Jtable, adicionar linhas, remover, ver se está vazio, etc...
Será que vc não tem nenhum exemplo simplificado disso?
Desde já valeu!
Fui... 8)