Enviar parâmetros para iReport

Bom dia a todos! Sei que já existem tópicos sobre esse assunto, mas de TODOS que eu já acessei, não consegui resolver meu problema. Sou novo em Java e estou com problemas para passar parâmetros para o iReport. Estou enviando o trecho do meu código, onde os parâmetros teriam que ser passados.

public void abrirRelatorioCondominos()throws SQLException, ClassNotFoundException{
                // exemplo para criar um  ResultSet  
                Relatorio r = new Relatorio();
                Connection conn = null;
                Class.forName(DRIVER);
                System.out.println("Driver registrado.");
                conn = DriverManager.getConnection(URL, USUARIO, SENHA);
                System.out.println("Conectado ao banco.");
                String SQL = ("select condominio, bloco, unidade, nome from cndunida where condominio LIKE ? order by condominio,bloco,unidade");
                PreparedStatement stm = conn.prepareStatement(SQL);
                stm.setString(1, jtxtCondominio.getText());
                ResultSet resultSet = stm.executeQuery();  

                JRResultSetDataSource jrRS = new JRResultSetDataSource(resultSet); // cria o JRResultSetDataSource passando o ResultSet  
                Map<String,String> parametros = new HashMap<String,String>();  
                //InputStream relatorio =  this.getClass().getResourceAsStream("/Condominos2.jasper"); // coloque o endereço corretamente aonde esta o seu relatório  
                InputStream inputStream = getClass().getResourceAsStream( "/Condominos2.jasper" );
                
                while(resultSet.next()){
                //Map parametros = new HashMap();
                parametros.put("condominio_num", ""+jtxtCondominio.getText()+"%");
                }
                try{
                     ReportUtils.openReport("Condominos2", inputStream, parametros, Conexao.getConexao());
                }catch(SQLException ex){
                     ex.printStackTrace();
                }catch(JRException e){
                     e.printStackTrace();
                }

    }

Esse é o último modo que eu tentei utilizar e não retorna nada!
Ora retorna NullPointerException, ora net.sf.jasperreports.engine.JRException: Error executing SQL statement for : report name

Não sei mais o que fazer! Estou precisando entregar esse projeto o mais rápido possível, me ajudem por favor!

Os dados terão de ser carregados de uma interface. Segue em anexo o print dela.

Esse código tá um pouco estranho.

 while(resultSet.next()){  
                //Map parametros = new HashMap();  
                parametros.put("condominio_num", ""+jtxtCondominio.getText()+"%");  
                }  

se não tiver registros para exibir ele nunca vai setar esse parâmetro gerando nullpointer.

JRResultSetDataSource jrRS = new JRResultSetDataSource(resultSet);

ainde você está passando esse datasource?

Pelo que eu entendi você está passando a conexão para o relatório, então tente colcocar sua query no Ireport e sete o parâmetro condominio_num lá no relatório.

Opa, obrigado pela resposta!

Mas então, estou passando como parâmetro no iReport também… está assim o query la…

select condominio, bloco, unidade, nome from cndunida
where condominio LIKE $P!{condominio_num}
order by condominio, bloco, unidade

Galera, alterei meu código tentando fazer uma validação no jtextfield mas mesmo assim não estou conseguindo! Ele está passando valor null…
O parâmetro que eu preciso passar é do tipo short. Segue o método:

    public void abrirRelatorioCondominos()throws SQLException, ClassNotFoundException, ParseException{
        
        Connection conn = null;
        Class.forName(DRIVER);
        System.out.println("Driver registrado.");
        conn = DriverManager.getConnection(URL, USUARIO, SENHA);
        System.out.println("Conectado ao banco.");
        

        if(!("".equals(jtxtCondominio.getText().trim()) )) //significa que não é ""
        {
        short numero = (short)((Short.parseShort(jtxtCondominio.getText().trim())));
                
        System.out.println(jtxtCondominio.getText());

        Map parametros = new HashMap();  
                            
        parametros.put("condominio_num", numero);
                //String SQL = ("select condominio, bloco, unidade, nome from cndunida where condominio = ? order by condominio,bloco,unidade");
                PreparedStatement stm = conn.prepareStatement("select condominio, bloco, unidade, nome from cndunida where condominio = ? order by condominio,bloco,unidade");
                stm.setShort(1, numero);
                ResultSet resultSet = stm.executeQuery();

                //JRResultSetDataSource jrRS = new JRResultSetDataSource(resultSet); // cria o JRResultSetDataSource passando o ResultSet  
                
                InputStream inputStream = getClass().getResourceAsStream( "/Condominos.jasper" );
                   
                try{
                     ReportUtils.openReport("Condominos", inputStream, parametros, jrRS);
                }catch(Exception ex){
                     ex.printStackTrace();
                }catch(JRException e){
                     e.printStackTrace();
                }

    }else{
            JOptionPane.showMessageDialog(this, "DIGITE O NUMERO DO CONDOMINIO");
        }
    }  

Na linha do if, ele não está fazendo o parse. Estou há uma semana estudando e pesquisando e não consigo. O projeto está atrasado!

Por favor, me ajudem!