Bom dia pessoal,
Estou desenvolvendo uma rotina no campo Passwordfield, o usuário pode digitar o quanto quiser, mas o campo fica travado no 6º caractere. Podem me ajudar?!
[code] senha.addEventHandler(KeyEvent.KEY_PRESSED, new EventHandler(){
@Override
public void handle(KeyEvent arg0) {
PasswordField f=(PasswordField)arg0.getSource();
int length = f.getText().length();
if(length > 6){
return;
}
}
});[/code]
Obrigado!
Retire esse trecho do código:
if(length > 6){
return;
}
Ele diz que se o tamanho do texto digitado for maior que 6 é para sair do método.
ErickRAR, obrigado pela dica.
Consegui implementar a rotina como eu disse acima. Transferi a rotina para um método, a qualquer momento, se eu precisar de usar um limite para senha é só chamar o método. É só passar o campo PasswordField e o tamanho desejado.
/**
* <p>
* Limitador de senha.
* </p>
* <pre>
* {@code
* PasswordField senha = new PasswordField();
* addPasswordLimiter(senha, 8);
* }
* </pre>
* @param pwf
* @param maxLength
* @return
*/
public static Node addPasswordLimiter(final PasswordField pwf, final int maxLength) {
pwf.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(final ObservableValue<? extends String> ov, final String oldValue, final String newValue) {
if(pwf.getText().length() > maxLength){
String s = pwf.getText().substring(0, maxLength);
pwf.setText(s);
}
}
});
return pwf;
}
Já testou passar -1 no parametro maxLength? acho que não vai dar muito certo não. 