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 =/
[code]/*
- 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 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 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"); }
}
- a lista de Cliente especificada. */
@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();
}
}
[/code]