Caríssimos,
Sou leigo no JAVA, porém tenho muito boa vontade de aprender.
Estou a mais de um ano tentando aprender.
Tenho boas idéias, só preciso aprender a implemeta-las no JAVA.
Preciso de ajuda no que diz respeito a configurar e formatar JTABLES.
Desejo entender melhor esse tal de DefaultTableModel e DefaultTableCellRenderer.
Estou tentando desenvolver isso:
Preciso de ajuda paciente.
DESDE JÁ AGRADEÇO.
/*
* 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.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.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
/**
*
* @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 {
//Adiciona cabeçalho das colunas
Vector cols = new Vector();
Vector tamanhoColuna = new Vector();
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); ++i) {
cols.addElement(rsmd.getColumnName(i));
tamanhoColuna.add(rsmd.getColumnDisplaySize(i));
}
//Adiciona registro a GRID
Vector lins = new Vector();
if (rs.isBeforeFirst()) {
while (rs.next()) {
Vector regs = new Vector();
System.out.println("---------- Tipo ---------- Início");
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
System.out.println("Tipo ----> " + rsmd.getColumnTypeName(i) + " - " + rsmd.getColumnType(i));
System.out.println("Tamnaho ----> " + rsmd.getColumnDisplaySize(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));
}
}
System.out.println("---------- Tipo ---------- Fim");
lins.addElement(regs);
}
}
//Configura Tabela
jt.setModel(DefineModelo(lins, cols));
jt.setAutoCreateColumnsFromModel(false);
jt.setColumnSelectionAllowed(false);
jt.getTableHeader().setReorderingAllowed(false);
jt.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jt.setBorder(BorderFactory.createRaisedBevelBorder());
//jt.setDefaultRenderer(Object.class, tcrDados);
////////////////////////////////// //Largura das colunas
////////////////////////////////// for (int i = 0; i < tamanhoColuna.size(); i++ ) {
////////////////////////////////// jt.getColumnModel().getColumn(i).setPreferredWidth(rsmd.getColumnDisplaySize(i + 1) * 8);
////////////////////////////////// //jt.getTableHeader().getColumnModel().getColumn(1).setHeaderRenderer(tcrCabecalho);
//////////////////////////////////
////////////////////////////////// System.out.println("Tamanho da Coluna - " + jt.getColumnModel().getColumn(i).getPreferredWidth());
////////////////////////////////// }
} catch (SQLException errorSQL) {
JOptionPane.showMessageDialog(null, errorSQL.getMessage(), "Erro SQL", JOptionPane.ERROR_MESSAGE);
errorSQL.printStackTrace();
}
return jt;
}
//Define modelo
protected static DefaultTableModel DefineModelo(Vector lins, Vector cols) {
//
DefaultTableModel dtm = new DefaultTableModel(lins, cols) {
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
};
return dtm;
};
}