estou desenvolvendo um softwarezinho aki e parei no seguinte problema…construi uma janela de busca no swing onde faço a busca pelo nome…ao clicar no botao ‘Buscar’ ele abre uma Jtable onde aparece o resultado da busca…entao dou dois cliques na pessoa q quero e apois isso abre a tela de cadastro…mais ai aparece o problema…queria poder trazer os dados q estao na Jtable e coloca-las na janela cadastro…como fazer isso??
Uma alternativa, é inserir em uma das colunas da tabela, um objeto que contenha todas as informações que você precisa.
mymyself
entao consegui resolver uma boa parte do problema agora estam restando dois
Seguinte faço uma consulta aki onde qndo coloco o nome de quem quero procurar ele me retorna os resultados do banco de dados ai dou dois cliques nele e me abre outra tela…mais estou com dois problemas…
1º ele sempre retorna para mim o primeiro cadastro, ou seja, a primeira linha da JTable…
2º não consigo dimensionar cada campo no seu devido lugar,ou seja,colocar no campo nome so o nome da pessoa…endereço so o endereço da pessoa assim por diante…ao inveis disso no campo nome por exemplo vem todos os dados do banco…e eles vem ainda entre “[[]]” dois colchetes…meus unicos problemas são esse dois o resto esta funcionando!
Eder_Peixoto
1º - Você está obtendo realmente a linha selecionada? getSelectedRow(): retorna o index na camada model da primeira linha selecionada.
2º - Você é que tem que colocar cada informação na sua devida coluna. Como está inserindo os dados nas colunas?
mymyself
segue o codigo assim podera entender melhor....
//implementando mostra pacientepublicVectorproximalinha(ResultSetrs,ResultSetMetaDatarsmd){VectorlinhaAtual=newVector();try{for(inti=1;i<rsmd.getColumnCount();++i){switch(rsmd.getColumnType(i)){caseTypes.VARCHAR:linhaAtual.addElement(rs.getString(i));break;caseTypes.INTEGER:linhaAtual.addElement(newLong(rs.getLong(i)));break;caseTypes.TIMESTAMP:linhaAtual.addElement(rs.getDate(i));break;}}}catch(SQLExceptionex){}returnlinhaAtual;}//mostra pacientepublicvoidmostrapaciente(){Statementstmt;ResultSetrs;try{Vectorcabecalho=newVector();finalVectorlinhas=newVector();stmt=conex.createStatement();rs=stmt.executeQuery("SELECT * FROM paciente WHERE nome LIKE '"+"%"+nome.getText()+"%"+"'");rs.next();ResultSetMetaDatarsmd=rs.getMetaData();for(inti=1;i<rsmd.getColumnCount();++i){cabecalho.addElement(rsmd.getColumnName(i));}do{linhas.addElement(proximalinha(rs,rsmd));}while(rs.next());finalJTabletabela=newJTable(linhas,cabecalho);JScrollPanescroller=newJScrollPane(tabela);getContentPane().add(scroller,BorderLayout.CENTER);tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);tabela.setDefaultEditor(Object.class,null);tabela.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){Pointp=e.getPoint();introw=tabela.rowAtPoint(p);intcol=tabela.columnAtPoint(p);JanelaPacientepa=newJanelaPaciente();for(inti=1;i<linhas.capacity();++i){pa.nome.setText(linhas+"");/*aqui gostaria que retorna-se so o nome da pessoa...mais ta retornando todos os dadosapois estar correto preenche os outro campos*/}}}});JFrameframe=newJFrame("CADASTRO PACIENTES");frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);frame.setSize(600,300);frame.setLocationRelativeTo(null);frame.add(BorderLayout.CENTER,newJScrollPane(tabela));frame.setVisible(true);stmt.close();}catch(Throwablet){}}
Eder_Peixoto
Resolve?
Eder_Peixoto
Aparece todos elementos porque está sendo invocado implicitamente o método toString da classe Vector.
mymyself
seguinte tenho que fazer uma adaptação aqui…creio eu…