Retornar dados de uma tela de pesquisa para tela de cadastro com swt
2 respostas
S
sincymaster
Pessoal, blz!!
Estou desenvolvendo um aplicativo para meu tcc, e surgiu a seguinte situação:
Tenho uma tela de cadastro q chama uma tela de pesquisa onde eu localizo um cliente. A duvida é o seguinte, como retornar este cliente para a tela de cadastro para poder listar os dados dele na tela?
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"> privatevoidinitComponents(){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> /** * @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);}});}