Olá amigos
despois de pesquisar muito não encontrei neda que pudesse me ajudar. Criei uma classe que monta uma jTable em tempo de execução até aí tudo bem, quando mostra o frame a tabela aparece com suas colunas, mas depois de selecionar o registro que desejo a jTable não mostra nada as linhas ficam em branco.
public ClassInicializaTable tabela = new ClassInicializaTable();;
/** Creates new form OrdemServico */
public OrdemServico() {
initComponents();
dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
String[] colunasTabela = {"Nº Orçamento", "Data Orçamento", "Hora","Cliente"};
int [] tamanhoColunas = {10,10,10,100};
//montaTabela(colunasTabela,tamanhoColunas);
int [] posicaoTabela = {50,450,600,150};
try {
tabela.montaTabela(colunasTabela, tamanhoColunas, posicaoTabela);
jPanel3.add(tabela.scroller);
jPanel3.add(tabela.scroller).setVisible(true);
} catch (Exception ex) {
Logger.getLogger(OrdemServico.class.getName()).log(Level.SEVERE, null, ex);
}
}
chamda para popular a jTable.
tabela.preencheTabela(rs);
aqui a classe:
package assistenciadesktop;
import java.sql.ResultSet;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
*
* @author silvio
*/
public class ClassInicializaTable {
static java.sql.Statement stmt;
static String mnome, macao;
static Object id;
public int linhatabela;
static ResultSet rs;
public String [] Colunas;
public int [] TamanhoCol;
public JTable jTable1 = new JTable();
public JScrollPane scroller = new JScrollPane(jTable1);
public DefaultTableModel aModel = new DefaultTableModel();;
public void ClassInicializaTable () {
}
public void montaTabela(String[] nomeColunas, int [] tamanhoColunas,int [] posicaoTabela) throws Exception {
String[] tableColumnsName = nomeColunas;
DefaultTableModel aModel = new DefaultTableModel(nomeColunas, 0) {
@Override
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
if (getValueAt(0, column) != null) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
} else {
returnValue = Object.class;
}
return returnValue;
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
};
aModel.setColumnIdentifiers(nomeColunas);
Colunas = nomeColunas;
TamanhoCol = tamanhoColunas;
jTable1.setModel(aModel);
scroller.setBounds(posicaoTabela[0], posicaoTabela[1], posicaoTabela[2], posicaoTabela[3]);
}
public void preencheTabela(ResultSet rs) throws Exception {
// java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int colNo = Colunas.length;
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(i+1);
}
aModel.addRow(objects);
}
jTable1.setFillsViewportHeight(true);
jTable1.getTableHeader().setReorderingAllowed(false);
//for(int i = 0; i < colNo; i++) {
// jTable1.getColumnModel().getColumn(i).setPreferredWidth(TamanhoCol[i]);
// }
}
}
se alguém puder ajudar?
muito obrigado
Silvio Guedes