package model.tablemodel;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.table.AbstractTableModel;
public class DemostrativoTableModel extends AbstractTableModel {
private Object [][]dados;
public DemostrativoTableModel(Object [][]dados){
if(dados == null)
this.dados = new Double[5][11];
else
this.dados = dados;
}
public int getColumnCount() {
return 11;
}
public String getColumnName(int coluna) {
switch(coluna){
case 0:return "Taxa de Juros";
case 1:return "Vencto.";
case 2:return "Garantia";
case 3:return "Valor Contratado";
case 4:return "Saldo Atual";
case 5:return "Valores Vencidos";
case 6:return "A vencer Curto Prazo";
case 7:return "A vencer Longo Prazo";
case 8:return "PMT";
case 9:return "Destinação";
case 10:return "Observações";
default:return "";
}
}
public int getRowCount() {
return 5;
}
public Class<?> getColumnClass(int col) {
switch(col){
case 0:return Double.class;
case 1:return Date.class;
case 2:return String.class;
case 3:return Double.class;
case 4:return Double.class;
case 5:return Double.class;
case 6:return Double.class;
case 7:return Double.class;
case 8:return String.class;
case 9:return String.class;
case 10:return String.class;
default:return Object.class;
}
}
public Object getValueAt(int row, int col) {
switch(col){
case 0:return dados[row][col];
case 1:return dados[row][col];
case 2:return dados[row][col];
case 3:return dados[row][col];
case 4:return dados[row][col];
case 5:return dados[row][col];
case 6:return dados[row][col];
case 7:return dados[row][col];
case 8:return dados[row][col];
case 9:return dados[row][col];
case 10:return dados[row][col];
default:return null;
}
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int column) {
if(Double.class.isInstance(value)){
System.out.println("Entrou "+value+"TipoClasse"+ value.getClass());
dados[row][column] = value;
}
if(String.class.isInstance(value)){
System.out.println("Entrou "+value+"TipoClasse"+ value.getClass());
dados[row][column] = value.toString();
}
if(Date.class.isInstance(value)){
DateFormat teste = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println("Entrou "+value+"TipoClasse"+ value.getClass()+"formato"+teste.format(value));
dados[row][column] = teste.format(value);
}
fireTableCellUpdated(row,column);
}
}
O meu problema é o seguinte:
Eu crio a tabela bonitinha, então eu consigo alterar as colunas que são double, porem as colunas e são DATE e STRING não deu certo, este é o erro que acontece:
retorna um String, onde seria um campo para DATE… só que eu n sei como eu posso arrumar isto, primeira vez que eu estou trabalhando com Datas em um modelo então eu to apanhando muito :s
[quote=Alchemist][code]
public String getColumnName(int coluna) {
switch(coluna){
case 0:return “Taxa de Juros”;
case 1:return “Vencto.”;
case 2:return “Garantia”;
case 3:return “Valor Contratado”;
case 4:return “Saldo Atual”;
case 5:return “Valores Vencidos”;
case 6:return “A vencer Curto Prazo”;
case 7:return “A vencer Longo Prazo”;
case 8:return “PMT”;
case 9:return “Destinação”;
case 10:return “Observações”;
default:return “”;
}
}
public Class<?> getColumnClass(int col) {
switch(col){
case 0:return Double.class;
case 1:return Date.class;
case 2:return String.class;
case 3:return Double.class;
case 4:return Double.class;
case 5:return Double.class;
case 6:return Double.class;
case 7:return Double.class;
case 8:return String.class;
case 9:return String.class;
case 10:return String.class;
default:return Object.class;
}
}
public Object getValueAt(int row, int col) {
switch(col){
case 0:return dados[row][col];
case 1:return dados[row][col];
case 2:return dados[row][col];
case 3:return dados[row][col];
case 4:return dados[row][col];
case 5:return dados[row][col];
case 6:return dados[row][col];
case 7:return dados[row][col];
case 8:return dados[row][col];
case 9:return dados[row][col];
case 10:return dados[row][col];
default:return null;
}
}
}
[/code]
[/quote]
Perdoando o primeiro.
Você escreve para o pessoal do xkcd? Master Piece!!!
Puts alguem pelo amor de deus me ajuda aqui, consegui arrumar meu modelo bonitinho, ele ficou assim:
package model.tablemodel;
import java.util.Date;
import javax.swing.table.AbstractTableModel;
public class DemostrativoTableModel extends AbstractTableModel {
private Object [][]dados;
public DemostrativoTableModel(Object [][]dados){
if(dados == null)
this.dados = new Object[5][11];
else
this.dados = dados;
}
public int getColumnCount() {
return 11;
}
public String getColumnName(int coluna) {
switch(coluna){
case 0:return "Taxa de Juros";
case 1:return "Vencto.";
case 2:return "Garantia";
case 3:return "Valor Contratado";
case 4:return "Saldo Atual";
case 5:return "Valores Vencidos";
case 6:return "A vencer Curto Prazo";
case 7:return "A vencer Longo Prazo";
case 8:return "PMT";
case 9:return "Destinação";
case 10:return "Observações";
default:return "";
}
}
public int getRowCount() {
return 5;
}
public Class getColumnClass(int col) {
switch(col){
case 0:return Double.class;
case 1:return Date.class;
case 2:return String.class;
case 3:return Double.class;
case 4:return Double.class;
case 5:return Double.class;
case 6:return Double.class;
case 7:return Double.class;
case 8:return String.class;
case 9:return String.class;
case 10:return String.class;
default:return Object.class;
}
}
public Object getValueAt(int row, int col) {
return dados[row][col];
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int column) {
if(Double.class.isInstance(value))
dados[row][column] = value;
if(String.class.isInstance(value))
dados[row][column] = value.toString();
if(Date.class.isInstance(value)){
dados[row][column] = value;
}
fireTableCellUpdated(row,column);
}
}
Blz ai eu preciso de uma mascara na Celula, então e estou tentando usar isto :
//Maskaras
JFormattedTextField campoData = null;
MaskFormatter maskData= null;
try {
maskData = new MaskFormatter("##/##/####");
maskData.setPlaceholderCharacter('_');
campoData = new JFormattedTextField(maskData);
campoData.setBorder(BorderFactory.createLineBorder(Color.BLACK));
} catch (ParseException e) {
e.printStackTrace();
}
//seto a maskara
TableColumn col = tabela.getColumnModel().getColumn(1);
col.setCellEditor(new DefaultCellEditor(campoData));
Mais na hora de alterar os dados da tabela acontece este erro: