Metodo limpiar jtable con consulta en combobox en java

Hola tengo un pequeño problema en una consulta que estoy haciendo con combobox dependientes cree un método que me limpie la tabla y otro que la llena con datos de la base cada vez que hago la consulta pero entonces al llamar la siguiente consulta no me muestra los datos .
Este es el codigo:
*Primer combo
private void combounoActionPerformed(java.awt.event.ActionEvent evt) {
String sql;
tema = combouno.getSelectedIndex();

switch (combouno.getSelectedIndex()) {
case 0: {

combodos.removeAllItems();
sql = "SELECT `nombre` FROM `sede`";
ConsultarItemns(sql);
break;
}
case 1: {
combodos.removeAllItems();
sql = "SELECT `nombre` FROM `campa`";
ConsultarItemns(sql);
break;
}
case 2: {
combodos.removeAllItems();
sql = "SELECT DISTINCT `estado` FROM `movimiento`";
ConsultarItemns(sql);
break;
}
case 3: {
combodos.removeAllItems();
sql = "SELECT DISTINCT `nombreleasing` FROM `movimiento`";
ConsultarItemns(sql);
break;
}
}
*Segundo combo
private void combodosActionPerformed(java.awt.event.ActionEvent evt) {
String sql = "--";
String campo;

try {
campo = combodos.getSelectedItem().toString();

switch (tema) {
case 0: {
limpiarTabla(tablebuscar);
sql = "SELECT * FROM `movimiento` WHERE `sede`='" + campo + "'";
// JOptionPane.showMessageDialog(null, sql);
llenarTabla(sql);
limpiarTabla(tablebuscar);
break;

}
case 1: {
limpiarTabla(tablebuscar);
sql = "SELECT * FROM `movimiento` WHERE `campa`='" + campo + "'";
// JOptionPane.showMessageDialog(null, sql);
llenarTabla(sql);
limpiarTabla(tablebuscar);
break;
}
case 2: {
limpiarTabla(tablebuscar);
sql = "SELECT * FROM `movimiento` WHERE `estado`='" + campo + "'";
// JOptionPane.showMessageDialog(null, sql);
llenarTabla(sql);
limpiarTabla(tablebuscar);
break;
}
case 3: {
limpiarTabla(tablebuscar);
sql = "SELECT * FROM `movimiento` WHERE `nombreleasing`='" + campo + "'";
llenarTabla(sql);
limpiarTabla(tablebuscar);
// JOptionPane.showMessageDialog(null, sql);
break;
}
}

} catch (Exception e) {

}

private void ConsultarItemns(String sql) {
ResultSet rs = null;
Conexion con = new Conexion();
Connection reg;
reg = con.conexionj();

try {
PreparedStatement pst = reg.prepareStatement(sql);
//ResultSet rs()=pst.executeQuery();
rs = pst.executeQuery();
while (rs.next()) {
combodos.addItem(rs.getString(1));

}
} catch (SQLException e) {
// JOptionPane.showMessageDialog(null, e);
}

}

public void llenarTabla(String sql) throws Exception {

//JOptionPane.showMessageDialog(null, "sql " + sql);
Conexion con = new Conexion();
Connection reg;
reg = con.conexionj();
ResultSet rs = null;
PreparedStatement pst = reg.prepareStatement(sql);
rs = pst.executeQuery();
rsm = rs.getMetaData();

while (rs.next()) {
Object[] filas = new Object[rsm.getColumnCount()];
for (int i = 0; i < filas.length; i++) {
filas[i] = rs.getObject(i + 1);

}
datos.add(filas);
}
dtm = (DefaultTableModel) tablebuscar.getModel();
for (int i = 0; i < datos.size(); i++) {
dtm.addRow(datos.get(i));

tablebuscar.getModel();

}

}

public void limpiarTabla(JTable tabla) {
try {
DefaultTableModel modelo = (DefaultTableModel) tabla.getModel();
int filas = tabla.getRowCount();
for (int i = 0; filas > i; i++) {
modelo.removeRow(0);

}
// if(filas==0){
// int columnas=tablebuscar.getColumnCount();
// for (int y = 0; y < columnas; y++) {
// modelo.removeRow(0);}
// }
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error al limpiar la tabla.");
}
}
}

Agradecería su colaboración.