Como organizar Tabela por meio de um ComboBox?

Eae pessoal Estou com um problema… Eu quero organizar a tabela com o comando where e com os dados de um combo box, tentei fazer o seguinte: (Mas não consegui)

package modeloTable;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;
import modeloBeans.BeansTelaPrincipal;
import modeloConnection.ConexaoBD;


public class TableLocacao extends AbstractTableModel {
    
    BeansTelaPrincipal beans = new BeansTelaPrincipal();
    ConexaoBD conex = new ConexaoBD();
    String where = beans.getTipoequip();
    String order = beans.getOrganizar();
    
    
    private final List<BeansTelaPrincipal> dados = new ArrayList<>();
    private final String[] colunas = {"ID Locação","Equipamento","Código","Num. de Série", "Status",
                                      "Fisioterapeuta", "Paciente", "Responsavel", "Data inicial",
                                      "Valor da Locação"};
    
    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }
    
    @Override
    public int getRowCount() {
        return dados.size();
    }

    @Override
    public int getColumnCount() {
        return colunas.length;
    }
   
    public List<BeansTelaPrincipal> read(){
        
        
                     
        PreparedStatement stmt = null;
        ResultSet rs = null;
  if(   "Todos".equals(where)) { 
     
      conex.conectar();
       try {
           stmt = conex.con.prepareStatement("select l.codlocacao, e.nome, e.codinterno, e.numeroserie, l.statusequip, l.fisio, p.nome,"+ 
                            " p.nomeresponsavel, l.datainicial, l.valorlocacao"+
                            " from locacao l"+
                            " join equipamento e"+
                            " on l.codequip = e.codequip"+
                            " join paciente p"+
                            " on l.codpaciente = p.codpaciente");
                           // "order by"+order+" ");
           rs = stmt.executeQuery();
           while (rs.next()){
               BeansTelaPrincipal beans = new BeansTelaPrincipal(); 
               beans.setCodlocacao(rs.getInt("l.codlocacao"));
               beans.setEquipamento(rs.getString("e.nome"));
               beans.setCodigo(rs.getString("e.codinterno"));
               beans.setNumserie(rs.getString("e.numeroserie"));
               beans.setStatus(rs.getString("l.statusequip"));
               beans.setFisio(rs.getString("l.fisio"));
               beans.setPaciente(rs.getString("p.nome"));
               beans.setResponsavel(rs.getString("p.nomeresponsavel"));
               beans.setDatainicial(rs.getString("l.datainicial"));
               beans.setValor(rs.getString("l.valorlocacao"));
               dados.add(beans);
               this.fireTableDataChanged();
           }
       } catch (SQLException ex) {
          JOptionPane.showMessageDialog(null, "Erro ao preencher Tabela.\n Erro:"+ex);
       }
           conex.desconetar();
       return null;
}else{
      conex.conectar();
        try {
           stmt = conex.con.prepareStatement("select l.codlocacao, e.nome, e.codinterno, e.numeroserie, l.statusequip, l.fisio, p.nome,"+ 
                            " p.nomeresponsavel, l.datainicial, l.valorlocacao"+
                            " from locacao l"+
                            " join equipamento e"+
                            " on l.codequip = e.codequip"+
                            " join paciente p"+
                            " on l.codpaciente = p.codpaciente"+
                            " where e.tipoequip = '"+where+"' ");
                           // " order by "+order+" ");
           rs = stmt.executeQuery();
           while (rs.next()){
               BeansTelaPrincipal beans = new BeansTelaPrincipal(); 
               beans.setCodlocacao(rs.getInt("l.codlocacao"));
               beans.setEquipamento(rs.getString("e.nome"));
               beans.setCodigo(rs.getString("e.codinterno"));
               beans.setNumserie(rs.getString("e.numeroserie"));
               beans.setStatus(rs.getString("l.statusequip"));
               beans.setFisio(rs.getString("l.fisio"));
               beans.setPaciente(rs.getString("p.nome"));
               beans.setResponsavel(rs.getString("p.nomeresponsavel"));
               beans.setDatainicial(rs.getString("l.datainicial"));
               beans.setValor(rs.getString("l.valorlocacao"));
               dados.add(beans);
               this.fireTableDataChanged();
           }
       } catch (SQLException ex) {
          JOptionPane.showMessageDialog(null, "Erro ao preencher Tabela.\n Erro:"+ex);
       }
           conex.desconetar();
       return null;
    }
}
    
    public List<BeansTelaPrincipal> clear(){
    dados.clear();
    return null;
    }
       
    @Override
    public Object getValueAt(int linha, int coluna) {
        
        switch (coluna){
            case 0:
                return dados.get(linha).getCodlocacao();
            case 1:
                return dados.get(linha).getEquipamento();
            case 2:
                return dados.get(linha).getCodigo();
            case 3:
                return dados.get(linha).getNumserie();
            case 4:
                return dados.get(linha).getStatus();
            case 5:
                return dados.get(linha).getFisio(); 
            case 6:
                return dados.get(linha).getPaciente();
            case 7:
                return dados.get(linha).getResponsavel();
            case 8:
                return dados.get(linha).getDatainicial();  
            case 9:
                return dados.get(linha).getValor();    
        }
    return null;

    }}

Código da tela principal:

package visao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import modeloBeans.BeansTelaPrincipal;
import modeloConnection.ConexaoBD;
import modeloDao.DaoGerarLocacao;
import modeloDao.DaoLogin;
import modeloTable.TableEquipDisp;
import modeloTable.TableLocacao;
import modeloTable.TableTelaPrincipal;

public class TelaPrincipal extends javax.swing.JFrame {

    BeansTelaPrincipal beanstp = new BeansTelaPrincipal();
    TableLocacao tabletp = new TableLocacao();
    TableEquipDisp tableed = new TableEquipDisp();
    DaoGerarLocacao daogl = new DaoGerarLocacao();
    ConexaoBD conex = new ConexaoBD();
    DaoLogin login = new DaoLogin();
    
    public TelaPrincipal() {
        initComponents();
        beanstp.setTipoequip("Todos");
        TabelaLocacao.setModel(tabletp);
        tabletp.clear();
        tabletp.read();
        TabelaEquipDisp.setModel(tableed);
        tableed.clear();
        tableed.read();
        this.popularSelect();
        lblUsuario.setText(login.usuario);
    }                       

     public void popularSelect (){   
 conex.conectar();
        try {
            PreparedStatement pst = null;
            ResultSet rs = null;
             pst = conex.con.prepareStatement("select tipoequipamento from tipoequipamento");
             rs = pst.executeQuery();
            while(rs.next()){
                slctTipoequip.addItem(rs.getString("tipoequipamento"));
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao preencher Select.\n Erro:"+ex);
        }
 conex.desconetar();
}   
    
//Item menu Paciente
    private void MenuItemPacienteActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        CadastroPacientes tela = new CadastroPacientes();
            tela.setVisible(true);
    }                                                

//Botão Gerar Locação
    private void btnGerarLocacaoActionPerformed(java.awt.event.ActionEvent evt) {                                                
         GerarLocacao tela = new GerarLocacao();
            tela.setVisible(true);
    }                                               

// Menu item Equipamentos
    private void MenuItemEquipamentosActionPerformed(java.awt.event.ActionEvent evt) {                                                     
        CadastroEquipamentos tela = new CadastroEquipamentos();
            tela.setVisible(true);        
    }                 

                              
// Esse botão que manda os dados do combobox e carrega a tabela 
// Botão Carregar
    private void btnCarregarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        BeansTelaPrincipal beanstp = new BeansTelaPrincipal();
        beanstp.setTipoequip((String)slctTipoequip.getSelectedItem());
        //beanstp.setOrganizar((String)slctOrganizar.getSelectedItem());
        tabletp.clear();
        tabletp.read();
    }                                           

//Menu Item Usuario
    private void MenuItemUsuarioActionPerformed(java.awt.event.ActionEvent evt) {                                                
        CadastroUsuarios tela = new CadastroUsuarios();
          tela.setVisible(true);
    }                                               

// Menu Item Gerar Locacao
    private void MenuItemGerarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        GerarLocacao tela = new GerarLocacao();
         tela.setVisible(true);
    }                                             

// Menu Item Gerenciar Locação
    private void MenuItemGerenciarActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        GerenciarLocacao tela = new GerenciarLocacao();
        tela.setVisible(true);
    }                                                 

// Menu Item Sair
    private void MenuItemSairActionPerformed(java.awt.event.ActionEvent evt) {                                             
        System.exit(0);
    }                                            

    public static void main(String args[]) {
        
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>


        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaPrincipal().setVisible(true);
            }
        });
    }

Desde de já agradeço…

No comboBox coloca um evento de click. Ele precisa pegar o que ele vai ordenar. Aí é só colocar um order by na query que tá listando os dados