E ai galera do forum…
talvez alguem possa me ajudar.
Tenho uma janela que busca os países cadastrados… quando ela é aberta, é executado um select * from pais, ela lista todos os paises, porem eu gostaria de quando o usuario digitar algo no JTextField, e clicar no buscar, ele realize a consulta, até ai consegui, só nao sei atualizar o Table, com o resultado da busca…
import java.util.Vector;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ButtonGroup;
import java.sql.ResultSet;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumn;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import javax.swing.table.*;
public class TBusPais extends NTela{
public TBusPais(){
setTamanho(50);
setPosicao("C","C");
setTitle("Buscar Pais....");
setConsulta();
setConstroiCampos();
jtLista.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jtListaMouseClick(evt);
}
});
btnBuscar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btnBuscarClick();
}
});
setModal(true);
}
public void jtListaMouseClick(java.awt.event.MouseEvent evt) {
Object strVCod = modelo.getValueAt(jtLista.getSelectedRow(), 0);
String codStr = ""+strVCod;
int cod = Integer.parseInt(codStr);
TCadPais.setSelecionado(cod);
}
public static void main (String [] args){
NPostgre.Conecta(NInfo.servidor,NInfo.banco,NInfo.user,NInfo.senha);
TBusPais tela = new TBusPais();
tela.show();
NPostgre.Desconecta();
}
public void setConstroiCampos(){
grTipo.add(rbNome);
grTipo.add(rbSigla);
rbNome.setSelected(true);
tfBusca.setDocument(new NLimita("TXT",50));
jtLista = new JTable(modelo);
jtLista.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jtLista.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
//Largura das Colunas
jtLista.getColumnModel().getColumn(0).setPreferredWidth(NTela.getLargura(tela,8));
jtLista.getColumnModel().getColumn(1).setPreferredWidth(NTela.getLargura(tela,10));
jtLista.getColumnModel().getColumn(2).setPreferredWidth(NTela.getLargura(tela,100));
//Alinhando as Colunas
jtLista.getColumnModel().getColumn(0).setCellRenderer(NTable.setAlinha("C"));
jtLista.getColumnModel().getColumn(1).setCellRenderer(NTable.setAlinha("C"));
jspScrolLista = new JScrollPane(jtLista);
jspScrolLista.setBounds(NTela.getLargura(tela,col1),NTela.getAltura(tela,base+18),NTela.getLargura(tela,lar3),NTela.getAltura(tela,alt1+35));
cont.add(lbTipo);
cont.add(rbNome);
cont.add(rbSigla);
cont.add(tfBusca);
cont.add(jspScrolLista);
cont.add(btnCancel);
cont.add(btnOk);
cont.add(btnBuscar);
}
public void setConsulta(){
setConsulta(0);
}
public void setConsulta(int tipo){
ResultSet pesquisa;
Vector vetCod = new Vector();
Vector vetNome = new Vector();
Vector vetSigla = new Vector();
String strCampo = "";
String strConsulta = "";
String strValor = tfBusca.getText();
if(rbNome.isSelected() == true){ strCampo = " NOME ";}
else if (rbSigla.isSelected() == true){ strCampo = " SIGLA ";}
if(tipo == 0){ strConsulta = "SELECT * FROM PAIS";}
else{ strConsulta = "SELECT * FROM PAIS WHERE NOME LIKE '"+strValor+"%'"; }
try{
pesquisa = NPostgre.Consulta(strConsulta);
while(pesquisa.next()){
vetCod.add(pesquisa.getString("Codigo"));
vetNome.add(pesquisa.getString("Nome"));
vetSigla.add(pesquisa.getString("Sigla"));
}
vetCod.trimToSize();
vetNome.trimToSize();
vetSigla.trimToSize();
}
catch(Exception ex){ }
vetTitulo = new String[]{"Cod","Sigla","Nome"};
vetValores = new Object[vetCod.size()][3];
for(int n=0;n<vetCod.size();n++){
vetValores[n][0] = vetCod.get(n);
vetValores[n][1] = vetSigla.get(n);
vetValores[n][2] = vetNome.get(n);
}
modelo = new DefaultTableModel(vetValores,vetTitulo);
}
private void btnBuscarClick(){
setConsulta(1);
}
private JScrollPane jspScrolLista;
private JTable jtLista;
Object[][] vetValores;
String[] vetTitulo;
private DefaultTableModel modelo;
private final int tela = 50;
private final int base = 10;
private final int col1 = 5;
private final int col2 = 20;
private final int col3 = 30;
private final int col4 = 50;
private final int lar1 = 15;
private final int lar2 = 65;
private final int lar3 = 90;
private final int alt1 = 5;
private NLabel lbTipo = new NLabel("Tipo:",col2,base,lar1,alt1,tela);
private NTextField tfBusca = new NTextField(col1,base+8,lar2,alt1,tela);
private ButtonGroup grTipo = new ButtonGroup();
private NRadioButton rbNome = new NRadioButton("Nome",col3,base,lar1,alt1,tela);
private NRadioButton rbSigla = new NRadioButton("Sigla",col4,base,lar1,alt1,tela);
private NButton btnOk = new NButton("Ok",100-22,base+70,lar1+5,alt1,tela);
private NButton btnCancel = new NButton("Cancelar",100-44,base+70,lar1+5,alt1,tela);
private NButton btnBuscar = new NButton("Buscar",col4+25,base+8,lar1+5,alt1,tela);
}
este é o metodo responsavel pela busca…
[code]
[b]
public void setConsulta(int tipo){
ResultSet pesquisa;
Vector vetCod = new Vector();
Vector vetNome = new Vector();
Vector vetSigla = new Vector();
String strCampo = “”;
String strConsulta = “”;
String strValor = tfBusca.getText();
if(rbNome.isSelected() == true){ strCampo = " NOME ";}
else if (rbSigla.isSelected() == true){ strCampo = " SIGLA ";}
if(tipo == 0){ strConsulta = "SELECT * FROM PAIS";}
else{ strConsulta = "SELECT * FROM PAIS WHERE NOME LIKE '"+strValor+"%'"; }
try{
pesquisa = NPostgre.Consulta(strConsulta);
while(pesquisa.next()){
vetCod.add(pesquisa.getString("Codigo"));
vetNome.add(pesquisa.getString("Nome"));
vetSigla.add(pesquisa.getString("Sigla"));
}
vetCod.trimToSize();
vetNome.trimToSize();
vetSigla.trimToSize();
}
catch(Exception ex){ }
vetTitulo = new String[]{"Cod","Sigla","Nome"};
vetValores = new Object[vetCod.size()][3];
for(int n=0;n<vetCod.size();n++){
vetValores[n][0] = vetCod.get(n);
vetValores[n][1] = vetSigla.get(n);
vetValores[n][2] = vetNome.get(n);
}
modelo = new DefaultTableModel(vetValores,vetTitulo);
}
[/b][/code]
valew.