Como exibir os dados em uma JTable criada com o Visual Editor?
8 respostas
touresfinge
Oi pessoal, mais uma vez preciso da ajuda d vcs.
Bom eu tou criando uma aplicação usando o editor grafico do netbeans, mas num tou conseguindo exibir os dados em uma jtable.
É o seguinte, tenho uma classe q executa as rotinas relacionadas a BD e uma classe chamada jFrmBrowseEmpresas, onde se encontra a jTable.
Segue o codigo p q vcs me ajudem a corrigi-lo :
// - Rotina que busca as empresas cadastradas no bando de dadospublicvoidgetEmpresas(){Vectorlin=newVector();Vectorcolun=newVector();Vectordod=newVector();try{this.stringSql="SELECT * FROM sis_empresas";Statementst=conexao.createStatement();ResultSetrs=st.executeQuery(this.stringSql);ResultSetMetaDatarsmd=rs.getMetaData();for(intcol=1;col<=rsmd.getColumnCount();col++)colun.add(rsmd.getColumnName(col));while(rs.next()){dod.addElement(Integer.toString(rs.getInt(1)));dod.addElement(rs.getString(2));lin.addElement(dod);dod=newVector();}}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Erro"+e.getMessage(),"Erro no Banco de dados",2);}DefaultTableModelmodelo=newDefaultTableModel(lin,colun);jFrmBrowseEmpresas.browseEmpresa.jTable=newJTable(modelo);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setPreferredWidth(5);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setHeaderValue("Código");jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setPreferredWidth(350);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setHeaderValue("Razao");}
Ja olhei esse capitulo e o seguinte, mas neles esta sendo gerado um Jtable atraves de codigo, dessa forma eu consigo fazer, mas a minha foi criada pelo editor grafico, ela ja existe, só preciso popular ela.
paulorb.pacheco
Colega eu sempre faço assim, se é certo ou errado não sei…
Tb não sei se entendi sua dúvida… hehehe
A jTable ta na classe jFrmBrowseEmpresas, e esse codigo tah na classe rotinasBD, eu quero colocar os dados na jTable, mas qdo eu rodo a aplicação, a grid tah vazia …
Num é esse codigo q eu deveria usar ???:
DefaultTableModel modelo = new DefaultTableModel(lin,colun);
jFrmBrowseEmpresas.browseEmpresa.jTable.setModel(modelo);
paulorb.pacheco
No DefaultTableModel modelo = new DefaultTableModel(lin,colun);
O “lin” teria que ser uma matriz String[][], Object[][] por exemplo…
Nunca vi ser um vector como vc está fazendo…
touresfinge
Dessa forma funciona p cria a jtable pelo codigo, mas blza …
Como ficaria então esse codigo ? :
08/06/2006 10:14:23
Mensagens: 55
Online
// - Rotina que busca as empresas cadastradas no bando de dadospublicvoidgetEmpresas(){Vectorlin=newVector();Vectorcolun=newVector();Vectordod=newVector();try{this.stringSql=“SELECT*FROMsis_empresas”;Statementst=conexao.createStatement();ResultSetrs=st.executeQuery(this.stringSql);ResultSetMetaDatarsmd=rs.getMetaData();for(intcol=1;col<=rsmd.getColumnCount();col++)colun.add(rsmd.getColumnName(col));while(rs.next()){dod.addElement(Integer.toString(rs.getInt(1)));dod.addElement(rs.getString(2));lin.addElement(dod);dod=newVector();}}catch(SQLExceptione){JOptionPane.showMessageDialog(null,“Erro”+e.getMessage(),“ErronoBancodedados”,2);}DefaultTableModelmodelo=newDefaultTableModel(lin,colun);jFrmBrowseEmpresas.browseEmpresa.jTable.setModel(modelo);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setPreferredWidth(5);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setHeaderValue(“Código”);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setPreferredWidth(350);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setHeaderValue(“Razao”);}
paulorb.pacheco
Olá colega eu faria assim:
publicvoidgetEmpresas(){Vectorlin=newVector();String[]colunas=newString[2];Vectordod=newVector();try{this.stringSql="SELECT * FROM sis_empresas";Statementst=conexao.createStatement();ResultSetrs=st.executeQuery(this.stringSql);ResultSetMetaDatarsmd=rs.getMetaData();for(intcol=1;col<=rsmd.getColumnCount();col++){colunas[rsmd.getColumnName(col)];}while(rs.next()){dod.addElement(Integer.toString(rs.getInt(1)));dod.addElement(rs.getString(2));lin.addElement(dod);dod=newVector();}}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Erro"+e.getMessage(),"Erro no Banco de dados",2);}String[]colunas=newString[2];Object[][]matriz=newmatriz[lin.getSize()][2];for(inti=0;i<lin.getSize();i++){matriz[i][0]=((Vector)lin.get(i)).get(0);matriz[i][1]=((Vector)lin.get(i)).get(1);}jFrmBrowseEmpresas.browseEmpresa.jTable.setModel(newjavax.swing.table.DefaultTableModel(valores,colunas){publicClassgetColumnClass(intcolumn){returngetValueAt(0,column).getClass();}publicintgetColumnCount(){returncolunas.length;}publicStringgetColumnName(intcolumn){returncolunas[column];}publicintgetRowCount(){returnvalores.length;}});jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setPreferredWidth(5);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(0).setHeaderValue("Código");jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setPreferredWidth(350);jFrmBrowseEmpresas.browseEmpresa.jTable.getColumnModel().getColumn(1).setHeaderValue("Razao");}
Se alguem tiver outra idéia de colocar os dados em um JTable me avise…
Ahhh… tipos… Eu não uso o Vector e sim outra lista, sendo que vc tem que colocar o tipo da lista que é o recomendado no java 1.5…
touresfinge
Ai pessoal, resolvido, consegui …, segue o codigo p quem desejar ?
// - Rotina que busca as empresas cadastradas no bando de dadospublicvoidgetEmpresas(){Vectorlin=newVector();Vectorcolun=newVector();Vectordod=newVector();try{this.stringSql="SELECT * FROM sis_empresas";Statementst=conexao.createStatement();ResultSetrs=st.executeQuery(this.stringSql);colun.add("COD");colun.add("RAZAO");colun.add("P");colun.add("CNPJ");while(rs.next()){dod.addElement(rs.getString("codigo_empresa"));dod.addElement(rs.getString("razao_empresa"));dod.addElement(rs.getString("pessoa_empresa"));dod.addElement(rs.getString("cnpj_empresa"));lin.addElement(dod);dod=newVector();}DefaultTableModelmodelo=newDefaultTableModel(lin,colun);// e passamos o modelo para criar a jtablejFrmBrowseEmpresas.browseEmpresa.jTblDados.setModel(modelo);jFrmBrowseEmpresas.browseEmpresa.jTblDados.getColumnModel().getColumn(0).setPreferredWidth(50);jFrmBrowseEmpresas.browseEmpresa.jTblDados.getColumnModel().getColumn(1).setPreferredWidth(250);jFrmBrowseEmpresas.browseEmpresa.jTblDados.getColumnModel().getColumn(2).setPreferredWidth(20);jFrmBrowseEmpresas.browseEmpresa.jTblDados.getColumnModel().getColumn(3).setPreferredWidth(150);}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Erro"+e.getMessage(),"Erro no Banco de dados",2);}}