Senha no JOptionPane ?[RESOLVIDO]

pessoal e uma duvida boba,tem alguma forma de colocar o campo q aparece no[quote] JOptionPane.showInputDialog()[/quote], como senha alguem sabe c isso é o possivel???

1 curtida

Aê flamenguista :slight_smile:
Tudo bom?

A classe que você precisa não é a JTextField, e sim a JPasswordField:

JPasswordField password = new JPasswordField();
password.setEchoChar('*'); // mostra '*' em vez do texto de entrada; vc pode escolher outro caracter se quiser

Experimenta aí, se era essa a sua dúvida :slight_smile:
Abraços**

PS: Ele quer isso dentro do JOptionPane

No fórum eu já vi essa pergunta mas não lembro aonde, se você procurar acho que você encontra.

opa tudo bom,se liga eu sei q ele monta o panel com o JTextField,eu queria saber c tem como colocar o JPassword em vez do JTextField,eu ate consegui colocar mais fica bizarro,passando o JPassword como parametro ,apareceu 2 campos textos um com a o JPassword e outro em baixo com JTextField

Ops… Desculpa, erro de interpretação :slight_smile:
Mas vc pode fazer o seguinte : uma sugestão é vc, em vez de usar o JOptionPane.inputDialog(), usar o JOptionPane.showMessageDiaog e passar o JPassword como parâmetro. Aí, em vez do showMessageDialog mostrar uma mensagem, ele mostra o JPassword para o usuário digitar a senha.
Aí vai um exemplo:

[code]import javax.swing.*;

public class Exemplo {

/**
*	Main.
*/
public static void main(String args[]){
	new Exemplo();
}

/**
 *	Construtor. Usado para exemplificar um modo de pedir senhas ao usuario através das classes JOptionPane
 *	e JPasswordField.
 */
Exemplo(){

	// Cria campo onde o usuario entra com a senha
	JPasswordField password = new JPasswordField(10);
	password.setEchoChar('*'); 

	// Cria um rótulo para o campo
	JLabel rotulo = new JLabel("Entre com a senha:");
			
	// Coloca o rótulo e a caixa de entrada numa JPanel:
	JPanel entUsuario = new JPanel();
	entUsuario.add(rotulo);
	entUsuario.add(password);

	// Mostra o rótulo e a caixa de entrada de password para o usuario fornecer a senha:
	JOptionPane.showMessageDialog(null, entUsuario, "Acesso restrito", JOptionPane.PLAIN_MESSAGE);

	// O programa só prossegue quando o usuário clicar o botao de OK do showMessageDialog. 
	// Aí, é só pegar a senha:

	// Captura a senha:
	String senha = password.getText();

	// mostra a senha no terminal:
	System.out.println("Você digitou: "+senha+"\nFim de execucao.");
}

}[/code]

Se vc rodar este código, ele funciona, mas o JPassword.getText() é deprecated :slight_smile:
Outro abraço :slight_smile:

2 curtidas

O método getText está deprecriado no JPasswordField

Use getPassword que te retorna um char[]

2 curtidas

vlw alineea,Mark_Ameba vlw pela forca ai obrigadao!!!

Essa é a mesma dúvida que eu tenho e estou tentando aplicar, só que os tipos não se falam entre si por isso fica dificil por um JPassword no argumento do JOptionPane pois ele deve ser String e mesmo usando o getPassword() tb ainda não consegui, alguem pode ajudar.

Rzanebr