Błąd długości łańcucha JPasswordField KeyPress?

Próbuję zmienić kolory tła JPasswordField w Java Swing (Netbeans).

Oto co mam:

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);
    }

}

Wszystko działa, chyba że cofam się. Gdy cofam się po wpisaniu 8 znaków, kolor nie zmienia się z powrotem na czerwony, dopóki w polu nie pozostanie tylko 5 znaków.

Pomoc byłaby doceniana, jestem bardzo nowa w programowaniu w Javie i Netbeans.

EDYTUJ: Zmieniłem swój kod,

    //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);
    }

Ten kod wydaje mi się sensowny, ale podczas testowania kolor zmienia się na zielony na 9. znaku; podczas cofania zmienia się z powrotem na czerwony o 6. Wydaje się, że jest to ten sam problem, który miałem, gdy kod był>= 7 gdzie kolor zmienił się na zielony na ósmej postaci, ale zmienił się z powrotem na czerwony przy 5 znakach.

Po wpisaniu 9 znaków komponent zmienia kolor na zielony

Po cofnięciu (począwszy od 9) komponent pozostaje zielony, aż pojawi się 6 znaków

To dziwne, ponieważ mam podobny kod w przycisku w tym programie, który wyświetla komunikat o błędzie. Ten kod działa dobrze. Czy jest to problem z KeyPress, może coś wspólnego z klawiszem Backspace?

questionAnswers(5)

yourAnswerToTheQuestion