MaskFormatter String

[code]
public MaskFormatter senhaMask() {
MaskFormatter mask = new MaskFormatter();
try {

		mask.setMask("*");
		mask.setValidCharacters("0123456789abcdefghijklmnopqrstuvxwzABCDEFGHIJKLMNOPQRSTUVWXZ");
	
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	return mask;
	
}[/code]

pretendo usar este codigo para mascarar a senha que o Utilizador escrever na consola . do tipo


Scanner input= new Scanner( System.in);
String senha = input.nextLine(); // pretendo mascarar esta senha!! 

alguma ajuda!!

Usar MaskFormatter no console não sei se é possível. Mas a partir do java 6, pode usar a classe java.io.Console:

[code] Console console = System.console(); // Retorna o console ou null, caso não esteja disponível
if (console == null) {
System.out.println(“Console não está disponível.”);
} else {
String nome = console.readLine("Nome: "); // Exibe o texto digitado normalmente
char[] senha = console.readPassword("Senha: "); // Mascara o texto digitado

		System.out.println("Nome digitado: " + nome);
		System.out.println("Senha digitada: " + String.valueOf(senha));
	}[/code]

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.

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…

https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429
http://stackoverflow.com/questions/104254/java-io-console-support-in-eclipse-ide
http://www.eclipsezone.com/eclipse/forums/t93685.rhtml
http://netbeans.org/bugzilla/show_bug.cgi?id=68770

podem ajudar quem quiser usar a consola…

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!

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

feliz ano novo!!

Achei este artigo: http://java.sun.com/developer/technicalArticles/Security/pwordmask/

eu li este artigo e maskara Um JTextField isso é swing …nao é o pretendido!!
:slight_smile:

vou fazer pela consola como sugeriste :slight_smile:

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.