Dúvida filtro de pesquisa

Então pessoal, estou com uma duvida.
Tenho um código com a funcionalidade de pesquisa com o seguinte:
Tenho 4 textField 1 jList e 2jRadioButton, onde gostaria que o usuário escolhesse o que ele deseja filtrar, e caso deixe em branco um campo este mesmo campo seja desconsiderado na pesquisa.
Ai é que esta o problema pq meu código só funciona se o usuário escrever em todos os campos, e caso ele deixe um campo vazio dá erro

No caso o meu código esta assim:

if(!abrirConexao()) {  fecharObjetos();  return;  }
    String str = "";
    jTextArea1.setText("");
    PreparedStatement pstm = null;
    StringBuffer sql = new StringBuffer();
    sql.append("SELECT * FROM tb_paciente, tb_registrodoencas");
    try {
        if(txtNome!= null){
            sql.append(" WHERE nomePaciente LIKE '" + txtNome.getText() + "%'") ;
        }
        if(txtSigla!= null){
            sql.append(" AND siglaDoenca = '" + txtSigla.getText() + "'");
        }
        if(txtMin!=null && txtMax!=null){
            sql.append(" AND idade BETWEEN " + txtMin.getText() + " AND " + txtMax.getText());
        }
        if(jFeminino.isSelected()){
            sql.append(" AND sexo = 'F'");
        }
        if(jMasculino.isSelected()){
            sql.append(" AND sexo = 'M'");
        }
        if(jList1.getSelectedValue()!= null){
            sql.append( " AND estadoResidencia = '" + jList1.getSelectedValue() + "'");
        }
        pstm = con.prepareStatement(sql.toString());
        rs = pstm.executeQuery();
        while(rs.next()) {
            String cpf = rs.getString("CPF");
            String nome = rs.getString("nomePaciente");
            String estado =  rs.getString("estadoResidencia");
            int idade = rs.getInt("idade");
            String sexo = rs.getString("sexo");
            str += "CPF: " + cpf + " | Nome: " + nome + " | Estado: " + estado + " | Idade: " + idade + " | Sexo: " + sexo + "\n";
        }
        jTextArea1.setText(str);
    }

Ao invés de testar se o objeto JTextField está diferente de null, você deveria testar se o conteúdo dele é diferente de null e diferente de vazio.

No caso eu deveria deixar mais ou menos assim?

if(txtNome!= null && txtNome.toString()!= ""){
            sql.append(" WHERE nomePaciente LIKE '" + txtNome.getText() + "%'") ;
        }
if (txtNome.getText() != null && !txtNome.getText().trim().equals("")) {

}

Funcionou, obrigado!
Mas e no caso esse mesmo comando funciona pro jRadioButton e jList?

Java não tem comandos, getText() é um método.
Se você der uma lida na documentação da classe JRadioButton e da classe JList, vai descobrir os métodos que essas classes disponibilizam. :wink: