Olá pessoal,
Alguém tem uma sugestão de como inserir valores de um ArrayList em um JTable? Preciso informar somente 2 atributos na JTable.
Olá pessoal,
Alguém tem uma sugestão de como inserir valores de um ArrayList em um JTable? Preciso informar somente 2 atributos na JTable.
Tente criar um modelo com AbstractTableModel…
aqui tem algumas dicas, http://www.guj.com.br/posts/list/210285.java
vlw
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.table.AbstractTableModel;
public class SimpleTableModel extends AbstractTableModel{
private ArrayList linhas = null;
private String [] colunas = null;
private boolean [] colsEdicao;
public SimpleTableModel(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];
}
}
JTable minhaTabela = new JTable();
SimpleTableModel stm = new SimpleTableModel(meuArray, colunas, editavel);
minhaTabela.setModel(stm);
Acho que é isso ai... Mas é importante vc dar uma estudada nisso, pq se vc não entender a JTable bem, vc vai se atrapalhar mais para frente...
Vlws meu irmão era isso que eu estava procurando!
Muito obrigado mesmo!
Olá pessoal,Alguém tem uma sugestão de como inserir valores de um ArrayList em um JTable? Preciso informar somente 2 atributos na JTable.
sim comece pegando um tutorial e fazendo
depois poste aqui a sua dúvida pois desse jeito nem sei em que te ajudar sendo que
estás com a faca e o queijo na mão.