Então galera preciso que uma tabela seja montada de acordo com que eu precisar..
Pois tipo assim eu estou fazendo um sisteminha onde uso vários tipos de tabelas, porém o AbstractTableModel que tem aqui no GUJ que eu vi é assim
Porém eu preciso que esta parte seja preenchida de acordo com a tabela que eu quiser./* Array de Strings com o nome das colunas. */
private String[] colunas = new String[]{
"Código","Data","Hora", "Cliente", "Serviço","Telefone","Endereço","Preço"};
pensei em colocar váriaveis no lugar porém tem esta parte do get e set..
Oque eu poderia fazer para solucionar o meu problema? rsrs Atualmente estou usando a minha tabela principal com AbstractTableModel e as outras com DefaultTableModel =/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package View;
import Controller.Controlador;
import Model.Agendamento;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;
/**
*
* @author Michetti
*/
public class TableModel extends AbstractTableModel{
private static final long serialVersionUID = 1L;
/* Lista de Cliente que representam as linhas. */
private List<Agendamento> linhas = new Controlador().listarAgendamentos();
/* Array de Strings com o nome das colunas. */
private String[] colunas = new String[]{
"Código","Data","Hora", "Cliente", "Serviço","Telefone","Endereço","Preço"};
/* Cria um ClienteTableModel vazio. */
public TableModel() {
linhas = new Controlador().listarAgendamentos();
}
/* Cria um ClienteTableModel carregado com
* a lista de Cliente especificada. */
public TableModel(List<Agendamento> listaDeAgendamentos) {
linhas = new Controlador().listarAgendamentos();
}
/* 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 Cliente.
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) {
Agendamento ag = 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 ag.getCodigo();
case 1:
return ag.getData();
case 2:
return ag.getHorario();
case 3:
return ag.getNome();
case 4:
return ag.getServico();
case 5:
return ag.getTelefone();
case 6:
return ag.getEndereco();
case 7:
return ag.getValor();
default:
// Isto não deveria acontecer...
throw new IndexOutOfBoundsException("columnIndex out of bounds");
}
}
@Override
//modifica na linha e coluna especificada
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Agendamento ag = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado
switch (columnIndex) { // Seta o valor do campo respectivo
case 0:
ag.setCodigo(Integer.parseInt(aValue.toString()));
case 1:
ag.setData(aValue.toString());
case 2:
ag.setHorario(aValue.toString());
case 3:
ag.setNome(aValue.toString());
case 4:
ag.setServico(aValue.toString());
case 5:
ag.setTelefone(aValue.toString());
case 6:
ag.setEndereco(aValue.toString());
case 7:
ag.setValor(aValue.toString());
default:
// Isto não deveria acontecer...
}
fireTableCellUpdated(rowIndex, columnIndex);
}
//modifica na linha especificada
public void setValueAt(Agendamento aValue, int rowIndex) {
Agendamento ag = linhas.get(rowIndex); // Carrega o item da linha que deve ser modificado
ag.setCodigo(aValue.getCodigo());
ag.setData(aValue.getData());
ag.setHorario(aValue.getHorario());
ag.setNome(aValue.getNome());
ag.setServico(aValue.getServico());
ag.setTelefone(aValue.getTelefone());
ag.setEndereco(aValue.getEndereco());
ag.setValor(aValue.getValor());
fireTableCellUpdated(rowIndex, 0);
fireTableCellUpdated(rowIndex, 1);
fireTableCellUpdated(rowIndex, 2);
fireTableCellUpdated(rowIndex, 3);
fireTableCellUpdated(rowIndex, 4);
fireTableCellUpdated(rowIndex, 5);
fireTableCellUpdated(rowIndex, 6);
fireTableCellUpdated(rowIndex, 7);
}
;
;
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public Agendamento getCliente(int indiceLinha) {
return linhas.get(indiceLinha);
}
/* Adiciona um registro. */
public void addCliente(Agendamento m) {
// Adiciona o registro.
linhas.add(m);
int ultimoIndice = getRowCount() - 1;
fireTableRowsInserted(ultimoIndice, ultimoIndice);
}
/* Remove a linha especificada. */
public void removeCliente(int indiceLinha) {
JOptionPane.showMessageDialog(null, linhas);
linhas.remove(indiceLinha);
fireTableRowsDeleted(indiceLinha, indiceLinha);
}
/* Adiciona uma lista de Cliente ao final dos registros. */
public void addListaDeCliente(List<Agendamento> ag) {
// Pega o tamanho antigo da tabela.
int tamanhoAntigo = getRowCount();
// Adiciona os registros.
linhas.addAll(ag);
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();
}
}
disse, vou fazer uma para cada pois ficará até mais organizado minhas tabelas.