Boa noite,
Alguém pode me ajudar a implementar "DefaultTableColumnModel" e "TableColumn" segundo este código?
/*
* PreencheObjetos.java
*
* Created on 5 de Agosto de 2007, 19:37
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package utilitarios;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
/**
*
* @author PRSantos
*/
public class PreencheObjetos {
/** Creates a new instance of PreencheObjetos */
public static Object fill(Object objeto, StringBuffer sbSQL, Connection Conexao) {
System.out.println("Populando Objeto - " + objeto.getClass().getName());
if (objeto.getClass().getName().equals("ComboBox")) {
} else if (objeto.getClass().getName().equals("javax.swing.JTable")) {
objeto = PreencheJTable((JTable) objeto, RetornaResultSet.getResultSet(sbSQL, Conexao));
} else if (objeto.getClass().getName().equals("javax.swing.DataGridView")){
};
return objeto;
}
protected static JTable PreencheJTable(JTable jT, ResultSet rs) {
DecimalFormat df = new DecimalFormat();
SimpleDateFormat sdf = new SimpleDateFormat();
// NumberFormat nf = new NumberFormat();
// nf.
try {
ResultSetMetaData rsmd = rs.getMetaData();
//Adiciona cabeçalho das colunas
Vector cols = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); ++i) {
Vector conteudoCols = new Vector();
conteudoCols.addElement(rsmd.getColumnName(i));
conteudoCols.addElement(rsmd.getColumnType(i));
conteudoCols.addElement(rsmd.getColumnTypeName(i));
conteudoCols.addElement(rsmd.getColumnDisplaySize(i));
cols.addElement(conteudoCols);
}
//Adiciona registro a JTable
Vector lins = new Vector();
if (rs.isBeforeFirst()) {
while (rs.next()) {
Vector regs = new Vector();
for (int i = 1; i <= rsmd.getColumnCount(); ++i) {
//Formata campo
switch (rsmd.getColumnType(i)) {
case 02: //Types.NUMERIC:
regs.addElement(rs.getInt(i));
break;
case 91: //Types.DATE:
regs.addElement(rs.getDate(i));
break;
case 93: //Types.TIMESTAMP:
sdf.applyLocalizedPattern("dd/MM/yyyy");
regs.addElement(sdf.format(rs.getTimestamp(i)));
break;
case 01: //Types.CHAR:
regs.addElement(rs.getString(i));
break;
case 12: //Types.VARCHAR:
regs.addElement(rs.getString(i));
break;
case 04: //Types.INTEGER:
df.applyLocalizedPattern("000000");
regs.addElement(df.format(rs.getInt(i)));
break;
case 06: //Types.FLOAT:
regs.addElement(rs.getDouble(i));
break;
default:
System.out.println("Tipo foi:" + rsmd.getColumnTypeName(i));
}
}
//Adiciona registro fisicamente
lins.addElement(regs);
}
}
//Configura Tabela
jT.setModel(new ModeloTabela(lins, cols));
jT.setColumnModel(new ModeloColunaTabela(cols));
jT.getTableHeader().setDefaultRenderer(CelulaCabecalhoTabela(jT.getTableHeader()));
jT.setDefaultRenderer(Object.class, CelulaTabela());
} catch (SQLException errorSQL) {
JOptionPane.showMessageDialog(null, errorSQL.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
errorSQL.printStackTrace();
}
return jT;
}
//Define modelo de coluna
protected static TableColumnModel DefineModeloColunaTabela(Vector lins, Vector cols) {
//
TableColumnModel tcm = new DefaultTableColumnModel() {
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};
return tcm;
};
protected static TableCellRenderer CelulaCabecalhoTabela(JTableHeader jTH) {
final TableCellRenderer tcrNew = jTH.getDefaultRenderer();
//
TableCellRenderer tcr = new TableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column ) {
Component comp = tcrNew.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
comp.setFont(new Font("Arial", 1, 12));
comp.setForeground(new Color(0,0,0));
comp.setBackground(new Color(236,233,216));
return comp;
}
};
return tcr;
};
protected static TableCellRenderer CelulaTabela() {
//
TableCellRenderer tcr = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
//
if (isSelected) {
setBackground(Color.WHITE);
} else {
if (row % 2 == 0) {
setBackground(Color.CYAN);
} else {
setBackground(Color.LIGHT_GRAY);
}
}
setHorizontalAlignment(SwingConstants.RIGHT);
// //Alinha campo
// switch (rsmd.getColumnType(i)) {
// case 02: //Types.NUMERIC:
// regs.addElement(rs.getInt(i));
// break;
// case 91: //Types.DATE:
// regs.addElement(rs.getDate(i));
// break;
// case 93: //Types.TIMESTAMP:
// sdf.applyLocalizedPattern("dd/MM/yyyy");
// regs.addElement(sdf.format(rs.getTimestamp(i)));
// break;
// case 01: //Types.CHAR:
// regs.addElement(rs.getString(i));
// break;
// case 12: //Types.VARCHAR:
// regs.addElement(rs.getString(i));
// break;
// case 04: //Types.INTEGER:
// df.applyLocalizedPattern("000000");
// regs.addElement(df.format(rs.getInt(i)));
// break;
// case 06: //Types.FLOAT:
// regs.addElement(rs.getDouble(i));
// break;
// default:
// System.out.println("Tipo foi:" + rsmd.getColumnTypeName(i));
// }
//
// if (column == 0) {
// if (new BigDecimal(value.toString()).intValue() < 5) {
// setForeground(Color.green);
// }
// }
return this;
}
};
return tcr;
};
}