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.
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!
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
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.