Form JDialog, JOptionPane e JPasswordField

Bom pessoal, sou iniciante em java e novo no guj ( apesar de fazer pesquisas aqui há dias :smiley: ).

Minha dúvida é a seguinte:

Eu quero que logo que eu inicie um JDialog apareça um JOptionPane com um campo de senha.
Até aqui sem problemas, em 10 min no Google encontrei um modo e adaptei para o que eu quero:

        JPasswordField pf = new JPasswordField();
        int cs = JOptionPane.showConfirmDialog(
                    null,
                    pf,
                    "Digite sua senha:",
                    JOptionPane.OK_CANCEL_OPTION,
                    JOptionPane.PLAIN_MESSAGE
                );

O meu problema começa quando eu tento fechar o JDialog caso o usuário clique em cancelar ou digite a senha incorreta no JOptionPane (pegar a senha digitada foi simples).
Eu tentei de duas formas, ambas não funcionaram:

    public jAdicionarItem(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        this.setLocationRelativeTo(null);
        
        JPasswordField pf = new JPasswordField();
        int cs = JOptionPane.showConfirmDialog(
                    null,
                    pf,
                    "Digite sua senha:",
                    JOptionPane.OK_CANCEL_OPTION,
                    JOptionPane.PLAIN_MESSAGE
                );
        
        if ( cs == 0 )
        {
            // Testa a senha e etc...
        } else {
            // Primeira maneira que testei:
            this.dispose();
            // Segunda maneira que testei:
            jAdicionarItem.this.dispose();
        }
    }

Alguém pode me dar alguma dica indicar um modo para que eu possa fazer isso?

Desde já agradeço a ajuda,

Rafael.

Oi,

Primeira dica: Utilize as constantes da classe JOptionPane para verificar o resultado da janela:

if ( cs == JOptionPane.OK_OPTION )

Você pode utilizar a função DefaultCloseOperation e depois executar apenas o dispose na janela:

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

Tchauzin!