Usar MaskFormatter no console não sei se é possível. Mas a partir do java 6, pode usar a classe java.io.Console:
Consoleconsole=System.console();// Retorna o console ou null, caso não esteja disponívelif(console==null){System.out.println("Console não está disponível.");}else{Stringnome=console.readLine("Nome: ");// Exibe o texto digitado normalmentechar[]senha=console.readPassword("Senha: ");// Mascara o texto digitadoSystem.out.println("Nome digitado: "+nome);System.out.println("Senha digitada: "+String.valueOf(senha));}
Acho que não dá pra especificar os caracteres permitidos ou o caractere que deve ser exibido como máscara, mas deve quebrar o galho.
PS.: Se System.console() retornar null, compile e rode direto no terminal. Testando este código no console do Eclipse estava retornando null.
A
Alkamavo
obrigado pela ajuda…estive a ler estes artigos
acho que correndo da consola do IDE nao da…retorna Null, com correndo mesmo da consola do sistema Operativo!!
mas para isso, faço um JTextFieldPassword, mas é meio lixado tar abrir swing so pra por a passWord…
No console do meu SO funcionou normal. Mas como não é garantido é melhor não arriscar.
É meio complicado tentar fazer algo mais elaborado no console com java.
Feliz Ano Novo!
A
Alkamavo
tb no Console do meu S0 funcionou beleza, pena que na da pra maskacarar algo vindo da consola do IDE!!
mais uma vez grato pela ajuda!!
e espero que resolvem este bug!! ;p
eu li este artigo e maskara Um JTextField isso é swing …nao é o pretendido!!
vou fazer pela consola como sugeriste
E
Eric_Yuzo
Então, no início do artigo ele mostra um exemplo com JPasswordField, que é do Swing.
Logo abaixo do exemplo com JPasswordField, tem o tópico “Command-Line Input Masking”. Leia daí para baixo. Ele cria uma thread que limpa os caracteres inseridos no System.in.
Não cheguei a testar, mas pelas figuras, está mascarando a senha digitada no console.