JTable + Select Mysql

Galera to com um enorme duvida, to fazendo um projetinho academico
bastante simples , se trata de uma creche no qual cadastro os monitores , alunos
e faço um select nos alunos mostrando todos os dados cadastrados.
Porem eu gostaria de esta filtrando por turma porem não estou conseguindo
gostaria que voces estivessem dando uma olhada, fiz algo que axeii que seria o correto
porem não deu certo.

Projeto link = http://www.4shared.com/file/qFUJ4lj4/Creche.html

Login : administrador Senha : admin

Obs : Caso ocorra problema de referencia, o driver esta localizado na pasta Mysql, juntamente com o backup do meu banco

package Pimpolho;

import java.awt.Font;
import java.awt.event.*;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class ConsultaCliente extends JFrame implements ActionListener{

        private JLabel titulo = new JLabel("CONSULTA TURMAS");
      private JLabel nada = new JLabel();
        private JLabel lbTurma = new JLabel("TURMA :");
        private JComboBox cbTurma = new JComboBox();
        private JButton btPesquisar = new JButton("Pesquisar");
        private JButton btCancelar = new JButton("VOLTAR");


        private DefaultTableModel modelo = new DefaultTableModel();
        private JTable tabela = new JTable(modelo);
        private JScrollPane painel = new JScrollPane(tabela);

        private Vector nomeColunas;
        private Vector registro;
        private Vector dados;

          private Icon icone = new ImageIcon("imagem/x7.jpg");
        private JLabel logo = new JLabel(icone, JLabel.CENTER);

        Conexao bancoDados = new Conexao();



        public ConsultaCliente()
        {
            super("Consulta de Clientes");
            initComponents();
        }

        private void initComponents()
        {
            titulo.setBounds(150, 10, 250, 40);
            titulo.setFont(new Font("Arial",0 , 24));

            lbTurma.setBounds(100, 80, 50, 20);
            cbTurma.setBounds(180, 80, 120, 20);
cbTurma.addItem("");
cbTurma.addItem("A");
cbTurma.addItem("B");
cbTurma.addItem("C");
cbTurma.addItem("D");

            criarJTable("SELECT * FROM aluno ORDER BY turmaA ");   //Primeiramente ele mostra todos os dados ordenados

            painel.setBounds(30, 110, 480, 200);

            btPesquisar.setBounds(320, 80, 120, 20);
            btCancelar.setBounds(359, 310, 150, 30);

            getContentPane().add(titulo);
            getContentPane().add(lbTurma);
            getContentPane().add(cbTurma);
            getContentPane().add(painel);
            getContentPane().add(btPesquisar);

            getContentPane().add(btCancelar);
            getContentPane().add(nada);

 logo.setBounds(0,0,550,390);
         logo.setIcon(icone);

         getContentPane().add(logo);

            btCancelar.addActionListener(this);
            btPesquisar.addActionListener(this);

            tabela.addMouseListener(new MouseAdapter() {
                 @Override
                  public void mouseClicked(MouseEvent e) {
                        if (e.getClickCount() >= 0) {
                            int linha = tabela.getSelectedRow();

                                registro = new Vector();
                                registro.add(tabela.getValueAt(linha,0));//nome
                                registro.add(tabela.getValueAt(linha,1));//telefone
                                registro.add(tabela.getValueAt(linha,2));//endereco
                                registro.add(tabela.getValueAt(linha,3));//cpf
                                registro.add(tabela.getValueAt(linha,4));//rg
                                registro.add(tabela.getValueAt(linha,5));//cnh
                                registro.add(tabela.getValueAt(linha,6));//datanasc
                                registro.add(tabela.getValueAt(linha,7));//cidade
                                registro.add(tabela.getValueAt(linha,8));//salario
                                registro.add(tabela.getValueAt(linha,9));//nome de referencia


                                new CadastroAluno("Alteraçao de Clientes", registro);

                        }
                  }
             });


            setVisible(true);
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setBounds(200, 200, 550, 390);
    }

    private void criarJTable(String sql)
    {
        int j = 0;
        nomeColunas = new Vector();
        dados = new Vector();
        try {
            /*Implementaçao do banco de dados*/
            bancoDados.conectar();

            bancoDados.executar(sql,"");
            int cont = bancoDados.metadados.getColumnCount(); //qtd de colunas existentes no banco
            for (int i = 1; i < cont ; i++) {
                nomeColunas.add(i-1, bancoDados.metadados.getColumnName(i + 1));
            }

            //inserir registro no vetor de dados

            while(bancoDados.resultset.next())
            {//inicio while
                registro = new Vector();

                     registro.add(bancoDados.resultset.getString("nomeA"));
                     registro.add(bancoDados.resultset.getString("datanascA"));
                     registro.add(bancoDados.resultset.getString("turmaA"));
                     registro.add(bancoDados.resultset.getString("nomeR"));
                     registro.add(bancoDados.resultset.getString("cpfR"));
                     registro.add(bancoDados.resultset.getString("rgR"));
                     registro.add(bancoDados.resultset.getString("datanascR"));
                     registro.add(bancoDados.resultset.getString("enderecoR"));
                     registro.add(bancoDados.resultset.getString("telefoneR"));
                     registro.add(bancoDados.resultset.getString("emailR"));

                    dados.add(registro);

            }//fim while

            modelo = new DefaultTableModel(dados, nomeColunas);
            tabela = new JTable(modelo);
            painel = new JScrollPane(tabela);


        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(rootPane, "Ocooreu um erro na criaçao da tabela de consulta!! ERRO: " + ex.getMessage() );
        }

        //inserir registro no vetor de dados



    }  // final do metodo criarJTable

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == btCancelar){
             dispose();
        new JanelaPrincipal();
        }

        if(e.getSource() == btPesquisar){

        criarJTable("select * from aluno where turmaA = '"+cbTurma.getSelectedItem()+"'");   //Ao clicar no botao pesquisar ele lista somente a turma selecionada na JComboBox.

    System.out.println("Passou por aqui");  //teste



        }

        }

        public static void main(String[] args) {
        new ConsultaCliente();
    }

        }

O que eu quero e que ele mostre somente a turma selecionada na JComboBox.

Que bagunça…

  1. Crie uma classe de negócios para representar seus dados (no seu caso, a Classe Aluno);
  2. Crie uma outra classe que irá buscar os dados no banco, e montar listas de alunos. Um dos métodos dessa classe deverá ser o Carregar(int Turma);
  3. Crie um AlunoTableModel, para exibir os seus alunos na tela (veja link da minha assinatura).

Manter o código bagunçado assim só vai complicar para você mesmo. Comece organizando a casa antes de tentar dar vôos mais altos.