Porque eu não posso fazer isso:
int num = JOptionPane.showInputDialog(null, " Entre com o numero: ");
porque só da pra fazer isso quando a variável for String?
Porque eu não posso fazer isso:
int num = JOptionPane.showInputDialog(null, " Entre com o numero: ");
porque só da pra fazer isso quando a variável for String?
String numero;
numero = JOptionPane.showInputDialog(null, " Entre com o numero: ");
int num = Integer.parseInt(numero); // Converte String em Int
JOptionPane.showMessageDialog(null, num + 3);// Soma o valor do usuário por 3
Você precisa declarar uma String receber o valor do usuário na String e depois converter essa String em um Int.
Pra converter : int num = Integer.parseInt(numero);
Até mais!
Opa m-bax
int num = JOptionPane.showInputDialog(null, " Entre com o numero: ");
Voce não pode fazer isso, pq a especificação para o o componente JOptionPane foi definida para ter um retorno String.
Tanto que, se o usuário não colocar valor, vai retonar uma String vazia, mas sempre uma String.
Os únicos casos em que vc tem um retorno int são as caixas de confirmação, e os valores possíveis são:
* YES_OPTION
* NO_OPTION
* CANCEL_OPTION
* OK_OPTION
* CLOSED_OPTION
O q vc pode fazer é converter direto.
Seria a forma mais enxuta do código acima:
int num = Integer.valueOf(JOptionPane.showInputDialog(null, " Entre com o numero: "));
O problema, é se o usuário digitar algo que não seja numero, inclusive se ele não digitar nada.
Para ajudar, dá uma olhada neste tópico abaixo:
http://www.guj.com.br/posts/list/23607.java
Abraços
Para converter uma String para um int, use o método Integer.parseInt, não o método Integer.valueOf.
O Integer.valueOf irá:
Note que no fundo, você só precisava do primeiro passo. Todos os outros foram processamento jogado fora.
Valeu viny
Porque vc tem que sempre converter uma String para Integer.
um exemplo:
int num = Integer.parseInt(JOptionPane.showInputDialog(“Digite o numero”));
Ai dentro da aspas voce pode digitar o que vc quiser para o usuario
[quote=fabianacastelao]Porque vc tem que sempre converter uma String para Integer.
um exemplo:
int num = Integer.parseInt(JOptionPane.showInputDialog(null, “Digite o numero”));
Ai dentro da aspas voce pode digitar o que vc quiser para o usuario.
Desculpe o certo e esse e nao o de cima…
E você ainda pode fazer assim.
try{
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero"));
} catch( NumberFormatException e ){
JOptionPane.showMessageDialog(null,"Número Inválido");
}
caso o usuário coloque uma letra ou qualquer coisa que torne o número inválido o programa não encerrará e ainda irá informar ao usuário que ele digitou um número não válido.
E você ainda pode fazer assim.try{ int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero")); } catch( NumberFormatException e ){ JOptionPane.showMessageDialog(null,"Número Inválido"); }caso o usuário coloque uma letra ou qualquer coisa que torne o número inválido o programa não encerrará e ainda irá informar ao usuário que ele digitou um número não válido.
2 perguntas! é necessário sempre especificar null para JOptionPane.showInputDialog?
outra coisa, no caso de trabalhar com números é utilizado (NumberFormatException e) no catch, e se for ao contrário? para String, e o fulano não pode colocar valor numérico?
enfatizando:
tudo o q digitar é string. se não quiser q seja número, então vc vai ter utilizar uma estratégia para impedir isso.
abraços
Uma pergunta, a classe JOptionPane não tem nenhum método que aceite direto a entrada de inteiros ou outro tipo numérico?
Ou alguma outra classe então? Porque toda a vida tem que criar uma variável extra para cada atributo e fazer a conversão. Não tem outro jeito? Mais direto?
Uma pergunta, a classe JOptionPane não tem nenhum método que aceite direto a entrada de inteiros ou outro tipo numérico?Ou alguma outra classe então? Porque toda a vida tem que criar uma variável extra para cada atributo e fazer a conversão. Não tem outro jeito? Mais direto?
Não necessariamente terá que criar uma variável extra
faça como nosso amigo Sergio Filho
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero"));
[quote=alansystem]
Uma pergunta, a classe JOptionPane não tem nenhum método que aceite direto a entrada de inteiros ou outro tipo numérico?Ou alguma outra classe então? Porque toda a vida tem que criar uma variável extra para cada atributo e fazer a conversão. Não tem outro jeito? Mais direto?
Não necessariamente terá que criar uma variável extra
faça como nosso amigo Sergio Filho
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero"));
Sim, está sendo colocado tudo em uma linha, mas no fim o processo é o mesmo. Me refiro a algo como:
meuInteiro = Classe.metodo("Digite um inteiro: ");
Talvez eu que não esteja entendendo, mas o que você está dizendo, pra mim é a mesma coisa! aguardar alguém responder sua questão! 8)
Não está armazenando uma String e um Int.
A String já é o retorno do JOptionPane. Então, não tem jeito.
O que é diferente:
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero"));
//acima vc tem uma variável declarada (num) e uma implícita, que é o próprio retorno do JoptionPane. (total 2)
//====================
String userAnswer = JOptionPane.showInputDialog(null, "Digite o numero");
int num = Integer.parseInt(userAnswer);
//nesse outro caso, vc tem sim + uma declarada, que é a userAnswer (total 3).
do meu ponto de vista, fazer direto é o melhor.
Assim: essa é a limitação da linguagem: o JoptionPane retorna String.
Porém, Java é mto extendível. Caso vc necessite que seja direto pra int, vc pode desenvolver um complemento pra tal.
Muita gente desenvolve complementos, isso é fácil de se ver por aí.
Blz? deus abençoe
\o/
alansystem, outra coisa que eu quero saber é se isso está de acordo com as blueprints de Java. Para código reutilizável?
Porque o valor passa pela JOptionPane mas não fica armazenada em uma variável antes de ser convertida para inteiro. Está correto isso? 
Fala Alberto
Sim, isso é correto. Mas é meio estranho, não?! Principalmente pra quem tá começando.
A questão é a seguinte: vc vai precisar reutilizar o valor dessa String em algum outro ponto?
Ainda assim: cada um faz como quer, dependendo do nível de abastração da linguagem e da necessidade encontrada!
Blz? Abraços
\o/
int num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o numero"));
Interessante!
E sobre a questão do Alberto.S, talvez ele esteja tentando perguntar se não existe algum método de alguma classe gráfica que aceite e armazene números, sem precisar dessa conversão.
Opa
Existe o JFormattedTextField.
Através dele vc pode limitar o que vai ser digitado.
So que aqui, não se pode colocar o JFormattedTextField dentro do JOptionPane.
Pra utilizar, vc vai ter que fazer o seu proprio JFrame ou JDialog e, dentro dele, colocar o JFormattedTextField p receber o valor passado pelo usuário.
Blz?
Abraços \o/
JOptionPane.showConfirmDialog(null,"Deseja cancelar o cadastro?");
if(true){
limparCampos();
}
else if(false){
}
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
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:
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;
<a href="//System.out.println">//System.out.println</a>("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 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: [email removido]
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
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
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

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