Pessoal to com o seguinte problema:
Eu consegui fazer a consulta no mysql e jogar na tabela, mas quando eu faço uma nova consulta aparece tudo certinho até que eu clique sobre uma das linhas ai aparece a consulta que eu havia feito anteriormente. Como se a nova consulta ficasse sobreposta a velha consulta.
Acredito que deveria zerar minha list, mas nao sei como fazer isso, e to com muita duvida de como zerar a list no modelo ou na classe onde estou usando a jtable… enfim, vou postar o codigo e se alguem puder me ajudar… Procurei muitos exemplos de jtable mas nao achei só com enviando os dados direto para tabela, ou seja , ja carregar a tabela de cara e nao é isso que eu quero.
package programa;
//import ButtonRenderer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
public class Consultar extends Interface implements ActionListener{
JComboBox CombTabela, CombComputador,CombImpressora, CombOcorrencia, CombNextel, CombEvento ;
JTextField txConsult;
JButton BtConsultar, BtAlterar, BtExcluir;
String strTabela="", strCondicao="";
JLabel LConsult;
int Counter;
//bd
private Connection conexao;
private Statement meuState;
private ResultSet rs;
private ArrayList dados;
private String[] colunas;
String A,B,C,D,E,F,G,H;
//tabela
public Consultar()
{
LConsult= new JLabel("Consultar");
LConsult.setBounds(250,20,150,20);
BtConsultar= new JButton ("Consultar");
BtConsultar.setBounds(450,80,90,20);
BtConsultar.addActionListener(this);
BtAlterar= new JButton ("Alterar Linha Selecionada");
BtAlterar.setBounds(100,400,200,20);
BtAlterar.addActionListener(this);
BtExcluir= new JButton ("Excluir");
BtExcluir.setBounds(450,400,90,20);
BtExcluir.addActionListener(this);
txConsult= new JTextField();
txConsult.setBounds(450,52,150,20);
CombTabela = new JComboBox();
CombTabela.addItem(" Computador");
CombTabela.addItem(" Impressora");
CombTabela.addItem(" Ocorrência");
CombTabela.addItem(" Nextel");
CombTabela.addItem(" Evento");
CombTabela.setBounds(35,52,120,20);
CombTabela.setSelectedIndex(-1);
CombTabela.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=0;
Counter++;
switch(CombTabela.getSelectedIndex())
{
case 0:{
strTabela="Computador";
CombComputador.setVisible(true);
CombImpressora.setVisible(false) ;
CombOcorrencia.setVisible(false);
CombNextel.setVisible(false) ;
CombEvento.setVisible(false);
break;
}
case 1 :{
strTabela="Impressora";
CombComputador.setVisible(false);
CombImpressora.setVisible(true) ;
CombOcorrencia.setVisible(false);
CombNextel.setVisible(false) ;
CombEvento.setVisible(false);
break;
}
case 2 :{
strTabela="Ocorrencia";
CombComputador.setVisible(false);
CombImpressora.setVisible(false) ;
CombOcorrencia.setVisible(true);
CombNextel.setVisible(false) ;
CombEvento.setVisible(false);
break;
}
case 3 :{
strTabela="Nextel";
CombComputador.setVisible(false);
CombImpressora.setVisible(false) ;
CombOcorrencia.setVisible(false);
CombNextel.setVisible(true) ;
CombEvento.setVisible(false);
break;
}
case 4 :{
strTabela="Evento";
CombComputador.setVisible(false);
CombImpressora.setVisible(false) ;
CombOcorrencia.setVisible(false);
CombNextel.setVisible(false) ;
CombEvento.setVisible(true);
break;
}
}
}
});
CombComputador= new JComboBox();
CombComputador.setVisible(false);
CombComputador.addItem(" Nome do PC");
CombComputador.addItem(" Usuario");
CombComputador.addItem(" Configuração do PC");
CombComputador.addItem(" Setor");
CombComputador.addItem(" Proprietário");
CombComputador.setBounds(215,52,150,20);
CombComputador.setSelectedIndex(-1);
CombComputador.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=1;
Counter++;
switch(CombComputador.getSelectedIndex())
{
case 0:{
strCondicao="Nome do PC";
break;
}
case 1 :{
strCondicao="Usuario";
break;
}
case 2 :{
strCondicao="Configuração do PC";
break;
}
case 3 :{
strCondicao="Setor";
break;
}
case 4 :{
strCondicao="Proprietario";
break;
}
}
}
});
CombImpressora = new JComboBox();
CombImpressora.setVisible(false);
CombImpressora.addItem(" Marca");
CombImpressora.addItem(" Modelo");
CombImpressora.addItem(" IP");
CombImpressora.addItem(" Setor");
CombImpressora.setBounds(215,52,150,20);
CombImpressora.setSelectedIndex(-1);
CombImpressora.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=1;
Counter++;
switch(CombComputador.getSelectedIndex())
{
case 0:{
strCondicao="Marca";
break;
}
case 1 :{
strCondicao="Modelo";
break;
}
case 2 :{
strCondicao="IP";
break;
}
case 3 :{
strCondicao="Setor";
break;
}
}
}});
CombOcorrencia = new JComboBox();
CombOcorrencia.setVisible(false);
CombOcorrencia.addItem(" Usuario");
CombOcorrencia.addItem(" Setor");
CombOcorrencia.addItem(" Data do Problema");
CombOcorrencia.addItem(" Data da Resolução");
CombOcorrencia.addItem(" Situação");
CombOcorrencia.setBounds(215,52,150,20);
CombOcorrencia.setSelectedIndex(-1);
CombOcorrencia.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=1;
Counter++;
switch(CombOcorrencia.getSelectedIndex())
{
case 0:{
strCondicao="Usuario";
break;
}
case 1 :{
strCondicao="Setor";
break;
}
case 2 :{
strCondicao="Data do Problema";
break;
}
case 3 :{
strCondicao="Data da Resolução";
break;
}
case 4 :{
strCondicao="Situação";
break;
}
}
}
});
CombNextel = new JComboBox();
CombNextel.setVisible(false);
CombNextel.addItem(" Nome");
CombNextel.addItem(" Setor");
CombNextel.addItem(" Unidade");
CombNextel.addItem(" Modelo");
CombNextel.addItem(" Número");
CombNextel.addItem(" Status");
CombNextel.setBounds(215,52,150,20);
CombNextel.setSelectedIndex(-1);
CombNextel.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=1;
Counter++;
switch(CombNextel.getSelectedIndex())
{
case 0:{
strCondicao="Nome";
break;
}
case 1 :{
strCondicao="Setor";
break;
}
case 2 :{
strCondicao="Unidade";
break;
}
case 3 :{
strCondicao="Modelo";
break;
}
case 4 :{
strCondicao="Número";
break;
}
case 5 :{
strCondicao="Número";
break;
}
}}});
CombEvento= new JComboBox();
CombEvento.setVisible(false);
CombEvento.addItem(" Titulo");
CombEvento.addItem(" Data");
CombEvento.addItem(" Status");
CombEvento.setBounds(215,52,150,20);
CombEvento.setSelectedIndex(-1);
CombEvento.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e)
{
Counter=1;
Counter++;
switch(CombEvento.getSelectedIndex())
{
case 0:{
strCondicao="Nome";
break;
}
case 1 :{
strCondicao="Setor";
break;
}
case 2 :{
strCondicao="Unidade";
break;
}
case 3 :{
strCondicao="Modelo";
break;
}
}}});
getContentPane().add(LConsult);
getContentPane().add(txConsult);
getContentPane().add(BtConsultar);
getContentPane().add(BtAlterar);
getContentPane().add(BtExcluir);
getContentPane().add(CombTabela);
getContentPane().add(CombComputador);
getContentPane().add(CombImpressora);
getContentPane().add(CombOcorrencia);
getContentPane().add(CombNextel);
getContentPane().add(CombEvento);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==BtConsultar)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://localhost/prol","root", "");
meuState = conexao.createStatement();
if(strTabela=="Computador")
{
rs = meuState.executeQuery("select nome,usuario,configuracao,setor,proprietario,observacao from Computador where "+ strCondicao +"='"+txConsult.getText()+"'");
dados = new ArrayList();
colunas = new String[]{"nome","usuario","configuracoes","setor","proprietario","observacao"};
while (rs.next()){
A = (rs.getString("nome"));
B = (rs.getString("usuario"));
C = (rs.getString("configuracao"));
D = (rs.getString("setor"));
E = (rs.getString("proprietario"));
F = (rs.getString("observacao"));
//ADICIONAR NO MODELO
dados.add(new String[] { A,B,C,D,E,F });
}
AddTablePanel();
}
else if (strTabela=="Evento")
{
System.out.println("epkapekpekep");
rs = meuState.executeQuery("select titulo,data from evento where status='pendente'");
while (rs.next()){
// A = (rs.getString("titulo"));
// B = (rs.getString("data"));
// JOptionPane.showMessageDialog(null,A+B);
//ADICIONAR NO MODELO
}
}
try {
conexao.close();
} catch (SQLException ex) {
System.out.println("Não foi possível fechar a conexão!");
}
}
catch(ClassNotFoundException ex)
{
System.out.println("Driver JDBC-ODBC não encontrado!");
}
catch(SQLException ex)
{
System.out.println("Problemas na conexao com a fonte de dados");
}
}
}
public void AddTablePanel()
{
ConsultTableModel modelo = new ConsultTableModel(dados, colunas);
JTable jtable = new JTable(modelo);
jtable.setBounds(50,100,550,300);
JScrollPane jp= new JScrollPane(jtable);
jp.setBounds(50,100,550,300);
getContentPane().add(jp);
}
public static void main (String args[])
{
new Consultar();
}
}
e a tablemodel
package programa;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class ConsultTableModel extends AbstractTableModel{
private ArrayList linhas = null;
private String [] colunas = null;
public String[] getColunas()
{
return colunas;
}
public ArrayList getLinhas()
{
return linhas;
}
public void setColunas(String[] strings)
{
colunas = strings;
}
public void setLinhas(ArrayList list)
{
linhas = list;
}
public int getColumnCount()
{
return getColunas().length;
}
public int getRowCount()
{
return getLinhas().size();
}
public Object getValueAt(int rowIndex, int columnIndex)
{
String [] linha = (String [])getLinhas().get(rowIndex);
return linha[columnIndex];
}
public ConsultTableModel(ArrayList dados, String[] colunas){
setLinhas(dados);
setColunas(colunas);
}
@Override
public String getColumnName(int col)
{
return colunas[col];
}
}
Primeira vez que mexo com table, to apanhando pra caramba com isso ainda… 
valeu.
[/URL]
[/URL]