Pegar informação do Banco de Dados e jogar no TextField
6 respostas
fitoplancton
Eu estou com um problema para um trabalho da faculdade aqui.
Meu professor quer um trabalho de uma Agenda que armazene e busque dados do banco e jogue no Frame AWT.
Pra inserir eu não tenho problemas, possuo a classe que chama os métodos, que é a principal, eu crio um Objeto da Classe de Conexão ao banco:
DbConn db = new DbConn();
E vou executando normal, mas quando vou executar o método de consulta, eu não conseguir chegar em uma lógica que pegue o ResultSet e grave em algum lugar pra, caso retorne mais de 1 linha eu possa navegar no ResultSet, pelo ActionPerfomed de um botão: “Próximo Registro” ou “Registro Anterior”.
Entendem ?
O ResultSet e a query de consulta vão normal, eu não consigo a lógica para exibir no formulário (TextField) os dados e navegar pra frente e pra trás no ResultSet (rs.next() e rs.previous()).
chama esse metodo cada vez que vc usar os botões de navegação, com isso ele atualiza os campos quando ele percorrer o ResultSet.
fitoplancton
Valeu Tiago !
L
leandrooooo
Estou com um probleminha…
Tenho dois formularios…
Formulario 1 contem um JText e ao lado tenho um botão que abre um segundo formulario, neste segundo formulario abre uma tabela com alguns dados.
Apos localizar o registro e clicar no botao confirmar, quero pegar a informacao e mostar no Jtext no formulario 1.
Não estou conseguindo fazer isso…
Alguem pode me ajudar…
Esta aparecendo o erro de "java.lang.NullPointerException"
Obs: Estou usando classe bean…
O erro ocorrendo quando tenho setar o valor no JText…
Abaixo está a linha de comando que esta dando o erro
/* * Consultacliente.java * * Created on 24 de Agosto de 2008, 19:48 */packageassistenciadesktop;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyListener;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.*;importjava.sql.*;importjava.util.*;importjava.awt.GridLayout;importassistenciadesktop.FrameClientes_old;importbd.ConexaoBancoDados;importjavax.swing.event.AncestorListener;importjavax.swing.table.DefaultTableModel;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.lang.Object;importjavax.swing.table.TableModel;importjavax.swing.table.TableRowSorter;/** * * @author silvio */publicclassConsultaclienteextendsjavax.swing.JDialog{//private JTable jTable = null;privatejava.sql.Statementstmt;publicintlinhastabela;publicObjectCodigo;privatebooleanokSelecionado;staticStringnomeConsulta;/** Creates new form Consultacliente */publicConsultacliente(java.awt.Frameparent,booleanmodal){super(parent,modal);initComponents();}Consultacliente(Objectobject){try{initialize();}catch(ClassNotFoundExceptionex){Logger.getLogger(Consultacliente.class.getName()).log(Level.SEVERE,null,ex);}}publicObjectgetCodigo(){returnCodigo;//throw new UnsupportedOperationException("Not yet implemented");}publicstaticvoidsetNome(StringNome){nomeConsulta=Nome;}publicStringgetNome(){returnnomeConsulta;}publicbooleanSelecionaDados(){okSelecionado=false;//Marcamos que o ok não foi selecionadosetModal(true);//A dialog tem que ser modal. Só pode retornar do setVisible após ficar invisível.setVisible(true);//Mostramos a dialog e esperamos o usuário escolher alguma coisa.returnokSelecionado;//Retornamos true, se ele pressionou ok.}privatevoidmostrarResultados(ResultSetrs)throwsSQLException,ClassNotFoundException{Statementstatement;String[]tableColumnsName={"","Código","Nome","Fone"};finalDefaultTableModelaModel=newDefaultTableModel(tableColumnsName,0){@OverridepublicClassgetColumnClass(intcolumn){ClassreturnValue;if((column>=0)&&(column<getColumnCount())){if(getValueAt(0,column)!=null){returnValue=getValueAt(0,column).getClass();}else{returnValue=Object.class;}}else{returnValue=Object.class;}returnreturnValue;}@OverridepublicbooleanisCellEditable(introw,intcol){returnfalse;}};if(linhastabela==0){JOptionPane.showMessageDialog(this,"Nehum registro encontrado");return;}else{finalJTablejTable=newJTable();JScrollPanejScrollPane=newJScrollPane(jTable);getContentPane().add(jScrollPane,java.awt.BorderLayout.CENTER);aModel.setColumnIdentifiers(tableColumnsName);java.sql.ResultSetMetaDatarsmd=rs.getMetaData();intcolNo=rsmd.getColumnCount();while(rs.next()){Object[]objects=newObject[colNo];objects[0]=rs.getObject(1);objects[1]=rs.getObject(2);objects[2]=rs.getObject(3);objects[3]=rs.getObject(4);aModel.addRow(objects);}jTable.setModel(aModel);jTable.setFillsViewportHeight(true);jTable.getTableHeader().setReorderingAllowed(false);jTable.getColumnModel().getColumn(0).setWidth(0);jTable.getColumnModel().getColumn(0).setPreferredWidth(0);jTable.getColumnModel().getColumn(1).setPreferredWidth(50);jTable.getColumnModel().getColumn(2).setPreferredWidth(300);jTable.getColumnModel().getColumn(3).setPreferredWidth(100);jTable.setAutoCreateRowSorter(true);TableRowSorter<TableModel>sorter=newTableRowSorter<TableModel>(jTable.getModel());jTable.setRowSorter(sorter);jTable.getColumnModel().removeColumn(jTable.getColumnModel().getColumn(0));jTable.getSelectionModel().setSelectionInterval(0,0);jTable.requestFocusInWindow();jTable.addMouseListener(newMouseAdapter(){@OverridepublicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){// Listaclientes.id = jTable.getModel().getValueAt(jTable.getSelectedRow(),0);Codigo=jTable.getModel().getValueAt(jTable.getSelectedRow(),0);dispose();}}});}}privatevoidgetJTable()throwsClassNotFoundException,ClassNotFoundException{Statementstatement;ResultSetresult;try{stmt=bd.ConexaoBancoDados.conexao().createStatement();Stringquery="select id,id,nome,telefone from clientes where upper(nome) ilike "+"upper('%"+nomeConsulta+"%') order by nome";ResultSetrs=stmt.executeQuery(query);mostrarResultados(rs);stmt.close();}catch(SQLExceptionsqlex){sqlex.printStackTrace();}}privatevoidinitialize()throwsClassNotFoundException{ResultSetrst;this.setSize(600,400);Dimensiontela=Toolkit.getDefaultToolkit().getScreenSize();this.setLocation((tela.width-this.getSize().width)/2,(tela.height-this.getSize().height)/2);nomeConsulta=this.getNome();try{stmt=bd.ConexaoBancoDados.conexao().createStatement();Stringquery="select count(*) from clientes where upper(nome) ilike "+"upper('%"+nomeConsulta+"%')";rst=stmt.executeQuery(query);while(rst.next()){Object[]objects=newObject[1];objects[0]=rst.getObject(1);linhastabela=rst.getInt(rst.getRow());}stmt.close();}catch(SQLExceptionex){Logger.getLogger(Consultacliente.class.getName()).log(Level.SEVERE,null,ex);}getJTable();this.setTitle("Clientes");this.setDefaultCloseOperation(Consultacliente.DISPOSE_ON_CLOSE);}/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivatevoidinitComponents(){setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);setName("Form");// NOI18Njavax.swing.GroupLayoutlayout=newjavax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0,400,Short.MAX_VALUE));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGap(0,300,Short.MAX_VALUE));pack();}// </editor-fold>//GEN-END:initComponents/** * @param args the command line arguments */publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){Consultaclientedialog=newConsultacliente(newjavax.swing.JFrame(),true);dialog.addWindowListener(newjava.awt.event.WindowAdapter(){@OverridepublicvoidwindowClosing(java.awt.event.WindowEvente){System.exit(0);}});dialog.setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variables// End of variables declaration//GEN-END:variables}
espero ter ajudado
Silvio Guedes
L
leandrooooo
Silvio,
Obrigado pela resposta, mais acho que não fui claro com minha duvida.
Vou tentar explica-la novamente.
Tenho Formulario1 onde tenho um Jbutton e um JText, o JButton ao ser clicado abre um segundo formulario (Formulario2).
Neste formulario2 tenho um Jtable e um JButton, apos selecionar um dado no Jtable e clicar no Jbutton, quero transportar este dado para o Jtext no formulario1, essa que é minha dificuldade.