bom dia… pessoal fiz uma classe seguindo um livro para poder mostrar dados do banco erm uma JTable…
ai fiz tudo de boa ai na JTable eo chamo a classe… e crio o select… porem na hora de mostrar os dos ma JTable so aparece o nome das colunas… por exemplo… no select esta assim : Select nome, cpf, rg from funcionario logo na JTable aparece as 3 colunas… com os nomes mais não os dados… aparentemente esta certo porque ele pega os nome das colunas no select…
packagebr.com.siscom.view;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.table.AbstractTableModel;importbr.com.siscom.dao.Conexao;publicclassTabelaextendsAbstractTableModel{privateConnectionconexao;privateStatementstatement;privateResultSetresultset;privateResultSetMetaDatametadata;privateintlinha;privateStringquery;publicTabela(finalStringquery)throwsSQLException,ClassNotFoundException{conexao=Conexao.getConnection();statement=conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);setQuery(query);}publicClassgetColumnClassName(finalintcolumn){try{finalStringclassName=metadata.getColumnClassName(column+1);returnClass.forName(className);}catch(finalExceptionexception){exception.printStackTrace();}returnObject.class;}publicintgetColumnCount(){try{returnmetadata.getColumnCount();}catch(finalSQLExceptionsqlexception){sqlexception.printStackTrace();}return0;}publicStringgetColumnName(finalintcolumn){try{returnmetadata.getColumnName(column+1);}catch(finalSQLExceptionsqlexception){sqlexception.printStackTrace();}return"";}protectedvoidfinalize(){try{statement.close();conexao.close();}catch(finalSQLExceptionsqlexception){sqlexception.printStackTrace();}}publicintintgetRowCount(){returnlinha;}publicObjectgetValueAt(finalintrow,finalintcolumn){try{resultset.absolute(row+1);returnresultset.getObject(column+1);}catch(finalSQLExceptionsqlexception){sqlexception.printStackTrace();}return"";}publicvoidrefresh()throwsSQLException{setQuery(query);}publicvoidsetQuery(finalStringqry)throwsSQLException{query=qry;resultset=statement.executeQuery(qry);metadata=resultset.getMetaData();resultset.last();linha=resultset.getRow();fireTableStructureChanged();}publicintgetRowCount(){// TODO Auto-generated method stubreturn0;}}
galeraaa desculpa ai resolvi a minha situaçãoo
:D
vlww
era que eu fiz um erro no [code]# public int intgetRowCount() {
return linha; }
na verdade era no getRowCount...
vlwww
Naruto
bom mais tem um porem… nesse aee quando eo chamo o o form com o JTable… gostaria de por titulos porque os titulos que sai é os que vem do select por exemplo… select nome, cpf, rg from funcionario… ai sai assim nome cpf rg gostaria de manipularo tamanho das colunas e os titulos e as fonts como faço isso??
sim ok smais da forma que eu fiz… aquela classe não é a maneira correta de criar?
ViniGodoy
Você pode fazer o que o ratao sugeriu. Ou, você pode passar um array com o nome das colunas.
Normalmente, a gente não trabalha com SQL direto. As classes de negócio são instanciadas e são elas que aparecem no model. Os nomes de algumas colunas (daquelas que não adianta tirar por reflexão) são cadastradas manualmente mesmo.