Estou novamente pedindo ajuda em um JTable. É o seguinte tenho uma tela inicial (JFrame) onde desejo uma JTable, e pra inserir os dados nela eu tenho uma JFrame de cadastro de itens (onde tem codigo de barras, nome, valor), como faço pra criar a tabela e atribuir esses valores as linhas, e sempre que chamar o cadastro ele crie uma nova linha. Valeu galera…
Meu código ta assim:
package dados;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
public class TabelaProdutos extends AbstractTableModel {
/**
*
*/
private static final long serialVersionUID = 1L;
private ArrayList linhas = null;
private String[] colunas = null;
public TabelaProdutos(ArrayList dados, String[] colunas) {
this.setLinhas(dados);
this.setColunas(colunas);
}
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 int getColumnCount() {
return getColunas().length;
}
public int getRowCount() {
return getLinhas().size();
}
public Object getValueAt(int rowIndex, int ColumnIndex) {
String[] linha = (String[]) getLinhas().get(rowIndex);
return linha[ColumnIndex];
}
// construtor
public JTable createJTable() {
ArrayList dados = new ArrayList();
String[] colunas = new String[] { "Código de Barras", "Descrição",
"Preço" };
dados.add(new String[] { "SP", "São Paulo" });
dados.add(new String[] { "RJ", "Rio de Janeiro" });
dados.add(new String[] { "RN", "Rio Grande do Norte" });
dados.add(new String[] { "ES", "Espirito Santo" });
TabelaProdutos modelo = new TabelaProdutos(dados, colunas);
JTable jtable = new JTable(modelo);
jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
return jtable;
}
public void addRow(String [] dadosLinha) {
getLinhas().add(dadosLinha);
int linha = getLinhas().size()-1;
fireTableRowsInserted(linha,linha);
return;
}
public void removeRow(int row)
{
getLinhas().remove(0);
fireTableRowsDeleted(row,row);
}
}
Quando eu tento chamar ele em outra classe que extende JFrame, como devo fazer? Valeu…
raikk0n3n, valeu pela ajuda, mas acho que não me expressei direito, é o seguinte tenho essa classe que cria a tabela e outra classe que tou usando como tela inicial que extende JFrame, só que quando tento fazer oq vc disse: jTable.setModel(new TabelaProdutos()); ele nao aceita, se puder me ajudar novamente, eu ficarei muito grato, pois a semanas que quebro a kbeça com JTable, muito obrigado, valeu. Ele pede pra botar algo dentro de: new TabelaProdutos(/aqui/). Valeu de novo.
de uma olha em AbstractTableModel!!!
No construtor do JFrame
jTable.setModel(new TabelaProdutos());
manda o erro q esta dando