package apresentacao;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.*;
public class Tabelex extends JFrame implements ActionListener, KeyListener{
Connection conexao;
JTable tab;
JButton a;
JTextField procurar;
public static JFrame pq = new Tabelex();
public Tabelex ()
{
setTitle("Tabel");
setSize(600,300);
String url = "jdbc:odbc:bdtcc";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexao = DriverManager.getConnection(url,"","");
}
catch(ClassNotFoundException cne){
System.out.println("Erro ao carregar o driver");
}
catch (SQLException sqlne)
{
System.out.println("Problemas na Conexão");
}
buscaTabel();
}
public void buscaTabel()
{
Statement st;
ResultSet res;
try
{
Vector cabecalho = new Vector();
Vector linhas = new Vector();
st = conexao.createStatement();
res = st.executeQuery("select * from Convenio"); // where nm_convenio like'"+cadastroConvenio.txtconv.getText()+"%'"
res.next();
//busca cabeçalho
ResultSetMetaData rsmd = res.getMetaData();
for(int i = 1; i <= rsmd.getColumnCount();++i){
cabecalho.addElement(rsmd.getColumnName(i));
}
//
//linhas
do
{
linhas.addElement(proximaLinha(res,rsmd));
}
while(res.next());
//mostra tabela
tab = new JTable(linhas, cabecalho);
JScrollPane scroller = new JScrollPane(tab);
getContentPane().add(scroller, BorderLayout.CENTER);
procurar = new JTextField();
procurar.addKeyListener(this);
getContentPane().add(procurar,BorderLayout.NORTH);
validate();
st.close();
}
catch(SQLException sqlex)
{
}
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd)
{
Vector LinhaAtual = new Vector();
try
{
for(int i = 1; i <= rsmd.getColumnCount();++i)
switch(rsmd.getColumnType(i))
{
case Types.VARCHAR:
LinhaAtual.addElement(rs.getString(i));break;
case Types.INTEGER:
LinhaAtual.addElement(new Long(rs.getLong(i)));break;
}
}
catch(SQLException e)
{
}
return LinhaAtual;
}
private void procuraTable(String nome){
int tamanho = nome.length();
for (int linha = 0; linha<tab.getRowCount(); linha++){
String nomeTabela = (String)tab.getValueAt(linha, 1);
if ((nomeTabela.length() >= tamanho) && (nomeTabela.substring(0,tamanho).equals(nome))){
tab.setRowSelectionInterval(linha,linha);
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*JFrame t2 = new Tabelex();
t2.show();*/
pq.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
procuraTable(procurar.getText());
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
Segue o código, então, galera, preciso que na hora que ele procure pelo jtextfield do form, role o jscroll até o ponto..
e isso não tá acontecendo, alguém pode dar um help?
Obrigado desde de já!