JPasswordField KeyPress error do comprimento da string?

Eu estou tentando mudar as cores de fundo de um JPasswordField em Java Swing (NetBeans).

Aqui está o que eu tenho:

private void pstxtPasswordKeyPressed(java.awt.event.KeyEvent evt) {                                         

    //Get string from password box
    userPassword = new String(pstxtPassword.getPassword());

    //If password is 8+ characters
    //(one less because string counting begins at 0)
    if (userPassword.length() >= 7) {

        //Set password input box background color to green
        pstxtPassword.setBackground(Color.green);
    }

    else { //If password is less than 8 characters

        //Set password input box background color to red
        pstxtPassword.setBackground(Color.red);
    }

}

Tudo funciona, exceto quando eu retrocedo. Quando eu retrocesso depois de digitar 8 caracteres, a cor não muda de volta para vermelho até que haja apenas 5 caracteres no campo.

Ajuda seria apreciada, eu sou muito novo para programação java e NetBeans.

EDIT: eu mudei meu código,

    //If password is 8+ characters
    if ((pstxtPassword.getPassword()).length >= 8) {

        //Set password input box background color to green
        pstxtPassword.setBackground(Color.green);
    }

    else { //If password is less than 8 characters

        //Set password input box background color to red
        pstxtPassword.setBackground(Color.red);
    }

Esse código parece fazer sentido para mim, mas no teste, a cor muda de verde no nono caractere; quando backspacing, muda de volta para vermelho em 6. Este parece ser o mesmo problema que tive quando o código foi>= 7 onde a cor mudou verde no 8º caractere, mas mudou de volta para vermelho em 5 caracteres.

Depois de digitar 9 caracteres, o componente fica verde

Após o retrocesso (a partir de 9), o componente permanece verde até que haja 6 caracteres

Isso é estranho, porque eu tenho código semelhante em um botão neste programa que exibe uma mensagem de erro. Esse código funciona bem. Este é um problema KeyPress, talvez algo a ver com a tecla backspace?

questionAnswers(5)

yourAnswerToTheQuestion