JOptionPane

Oi.
Bom, tô fazendo um cadastrinho e resolvi colocar um evendo para o botão cancelar em que envia Strings vazias para os campos de JTextField para apagar tudo que estiver escrito, porém eu coloquei uma tela de confirmação para o usuário ter certeza do que vai fazer.
Usei um JOptionPane.showConfirmDialog. Para ficar mais claro envio o código:

[code]JOptionPane.showConfirmDialog(null,“Deseja cancelar o cadastro?”);
if(true){
limparCampos();
}
else if(false){

}

[/code]

Agora o que coloco na condição do else para que ele não faça nada, mantenha o que tiver escrito e cancele a ação, pois da forma que tá quando eu clico em “Não” na tela de confirmação ele mesmo assim apaga o cadastro, tomando a mesma ação do “Sim”
Obrigado!

Fala Cara. Blz?

Seguinte

  1. o retorno de um showConfirmDialog não é um boolean.
  2. mesmo que fosse, esse valor ou deveria ser armazenado numa variável, ou deveria ser colocado direto na condição do if().

Do jeito que vc escreveu [if(true)], sempre será true pq nunca, nem ninguém está dizendo que há um false. Até pq, vc já esta DECLARANDO que “se = true”, entendeu?

O guia para a solução:
Segundo a API do Java:

Então, o showConfirmDialog retorna os possíveis valores:

  • 0 = Sim / * 1 = Não / * 2 = Cancelar.

Trate então seu condicional utilizando estes valores como parâmetros.
Outra coisa, segundo vc disse, se a única coisa que vc quer tratar somente uma condição, não precisa tratar as demais.

Por fim, lembre-se: ler a API do Java, de vez em quando, é legal, blz?
Link > APIJava

Abraços

[b][color=green]String raaio = JOptionPane.showInputDialog(“Informe o raio :”);
int raio = Integer.parseInt(raaio);

	//Diâmetro

double diametro = 2 * raio;
//System.out.println("Diametro = "+diametro);
JOptionPane.showMessageDialog(null, diametro);[/color][/b]

Olá , como voces podem ver neste pedaço de código , criei um código para receber o raio e calcular o diâmetro , a área e o comprimento de uma circunferência.
A questão é que eu queria mostrar usando o JOptionPane alguma mensagem do tipo

JOptionPane.showMessageDialog(O diametro da circunferencia e = , diametro); ou

JOptionPane.showMessageDialog("O diametro da circunferencia e = ", diametro); ou ainda

JOptionPane.showMessageDialog('O diametro da circunferencia e = ', diametro);

mas o melhor que eu consegui foi

JOptionPane.showMessageDialog(null, diametro); , em que a mensagem só retorna o nº da variável diâmetro .

Alguma sugestão ??? Grato pela ajuda .

Faz assim.

JOptionPane.showMessageDialog(null, ("O diametro eh: " + diametro));

Algumas questões que não entendi:

  • se vc está utilizando esse inteiro ‘raio’ somente para o cálculo do diâmetro, necessariamente vc não precisa armazenar o valor.

Se vc permite, as maneiras mais eficazes (do meu ponto de vista) de se fazer, a partir do seu código e a partir das respostas anteriores, seria:


String raio = JOptionPane.showInputDialog(null, "Digite o raio:");

//Forma 1 - menos direto 
double diametro = 2 * Integer.parseInt(raio); 
JOptionPane.showMessageDialog(null, ("O diametro eh: " + diametro), "Título: Forma 1", JOptionPane.INFORMATION_MESSAGE);
		
//Forma 2 - mais direto ainda (gosto mais assim)
// dessa forma, não vai precisar armazenar a variável diametro
JOptionPane.showMessageDialog(null, ("O diametro eh: " + (2.0 *Integer.parseInt(raio))),"Título: Forma 2", JOptionPane.INFORMATION_MESSAGE);

//-- Nesta 2a forma, vc pode perceber que o fato e multiplicar um double por um int ((2.0 *Integer.parseInt(raio)) já
//-- me retorna um double automaticamente, evitando ter que armezar a variavel 'diametro'.
//-- somente faça isso se não for utilizar mais diametro.

Blz?
Ah! E não se esqueça. nos próximos códigos que postar, use o botão de CODE para iniciar e terminar um código. Fica mais legível.
Abraços. Deus abençoe

bom galera aproveitando esse topico gostaria de utilizar o JOptionPane.showInputDialog(null, “Digite o senha”); para pedi a senha, mais como faço para deixa o conteundo digitado no mascara de passowd por ex: (*****)

e-mail: adilson.curso@yahoo.com.br

Fala AdsAdilson.

Diretamente, não tem. Existe a classe JPasswordField.
Dá uma olhada se resolve:
http://www.guj.com.br/java/72643-senha-no-joptionpane-resolvido

Abcs

berg.pb

Valeu meu jovem vou da uma olhada, ha lhe adicionei no meu msn caso queira troca uma ideia fique a vontande

[quote=berg.pb]Faz assim.

JOptionPane.showMessageDialog(null, ("O diametro eh: " + diametro));

Algumas questões que não entendi:

  • se vc está utilizando esse inteiro ‘raio’ somente para o cálculo do diâmetro, necessariamente vc não precisa armazenar o valor.

Se vc permite, as maneiras mais eficazes (do meu ponto de vista) de se fazer, a partir do seu código e a partir das respostas anteriores, seria:


String raio = JOptionPane.showInputDialog(null, "Digite o raio:");

//Forma 1 - menos direto 
double diametro = 2 * Integer.parseInt(raio); 
JOptionPane.showMessageDialog(null, ("O diametro eh: " + diametro), "Título: Forma 1", JOptionPane.INFORMATION_MESSAGE);
		
//Forma 2 - mais direto ainda (gosto mais assim)
// dessa forma, não vai precisar armazenar a variável diametro
JOptionPane.showMessageDialog(null, ("O diametro eh: " + (2.0 *Integer.parseInt(raio))),"Título: Forma 2", JOptionPane.INFORMATION_MESSAGE);

//-- Nesta 2a forma, vc pode perceber que o fato e multiplicar um double por um int ((2.0 *Integer.parseInt(raio)) já
//-- me retorna um double automaticamente, evitando ter que armezar a variavel 'diametro'.
//-- somente faça isso se não for utilizar mais diametro.

Blz?
Ah! E não se esqueça. nos próximos códigos que postar, use o botão de CODE para iniciar e terminar um código. Fica mais legível.
Abraços. Deus abençoe[/quote]

berg.pb , valeu pela ajuda , entendi como mexer um pouco com isso .
é porque antes eu achava que dava pra tirar a parte null , e só por textos e variaveis . Mas ai lembrei e vi os lances dos ‘+’ e tal .

A propósito , eu ia mesmo perguntar a alguém como por essas linhas de código , fica muito legal.

no programinha que eu tava fazendo , a variavel raio também serviu para outras funçoes .
vlw amigo

:slight_smile:

Como diria a Turma do Chaves, “estamos aqui pra isso!!”
lol