System.out.print não existe em GUI?

1 resposta
J

Estou lendo o livro dos Deitel e estou com uma dúvida. Eles usam JOptionPane.showMessageDialog pra exibir a mensagem(caixa de diálogo) ao usuário e como sou iniciante,estou mais acostumado com o system.out.print em pequenos programas em java que usam o DOS.

Já entendi que JOptionPane é o que mostra as caixas de diálogo(gráfico) e faz parte do pacote javax.swing. Minha dúvida é se em vez de JOptionPane.showMessageDialog,existe algum meio de colocar system.out.print ou outra maneira de fazer ele exibir apenas se o número digitado é maior,menor ou igual a outro.
É que ele mostra tudo ao mesmo tempo. Por exemplo,se digito 2 e 5 ele vai mostrar: 2 é diferente de 5
2 é menor que 5
2 é menor ou igual a 5

E o que quero é que ele mostre apenas se é maior,menor ou igual. Apenas uma escolha. Como se faz isso? Já andei mexendo,troquei JOptionPane por system.out.print e não deu certo.

Obrigado.

//Pacotes de extensão de java

import javax.swing.JOptionPane;

public class Comparison{

//Método main inicia a execução do aplicativo java
public static void main(String args[])

{
	String primeiroNumero; //primeiro string digitado pelo usuário
	String segundoNumero; //segundo string digitado
	String result;  //um string contendo a saída
	int numero1; //primeiro numero a comparar
	int numero2; //segundo numero a comparar
	
	//lê o 1° numero do usuário como um string
     primeiroNumero=
     JOptionPane.showInputDialog("Digite o primeiro inteiro");
     
     
     //lê o 2° numero do usuário como um string
     segundoNumero=
     JOptionPane.showInputDialog("Digite o segundo inteiro");
     
     //converte os números do tipo string p/ inteiro
     numero1=Integer.parseInt(primeiroNumero);
     numero2=Integer.parseInt(segundoNumero);
     
     //inicia o resultado com um string vazio
     result="";
     
     if (numero1==numero2)
     result=result+numero1+" é igual a "+numero2;
     
     if (numero1!=numero2)
     result=result+numero1+" é diferente de "+numero2;
     
     if (numero1<numero2)
     result = result+ "\n" + numero1+ " é menor que "+numero2;
     
     
     if (numero1>numero2)
     result = result+ "\n" + numero1+ " é maior que "+numero2;
     
     if (numero1<=numero2)
     result = result+ "\n" + numero1+ " é menor ou igual a "+numero2;
     
     if (numero1>=numero2)
     result = result+ "\n" + numero1+ " é maior ou igual a "+numero2;
     
     //Exibe os resultados
     JOptionPane.showMessageDialog(
     	null,result, "comparação do resultado",
     	JOptionPane.INFORMATION_MESSAGE );
     	
     	System.exit(0); //termina o aplicativo
     	
	
} //termina o método main.

} //termina a classe comparison

1 Resposta

cassio

Amigo, System.out.print() só gera saida no console, não na aplicação…Se vc executar o programa a partir dal ionha de comando, tudo q vc colcoar com System.out.print() vai aparecer no console…

Para mostrar só uma das saidas (ao invés das três do seu exemplo) vc tem que mudar a logica do seu programa, isso nao é culpa do jOptionPane… :slight_smile:

//inicia o resultado com um string vazio
result="";

if (numero1==numero2)
result=result+numero1+" é igual a "+numero2;

if (numero1!=numero2)
result=result+numero1+" é diferente de "+numero2;

if (numero1<numero2)
result = result+ "\n" + numero1+ " é menor que "+numero2;


if (numero1>numero2)
result = result+ "\n" + numero1+ " é maior que "+numero2;

if (numero1<=numero2)
result = result+ "\n" + numero1+ " é menor ou igual a "+numero2;

if (numero1>=numero2)
result = result+ "\n" + numero1+ " é maior ou igual a "+numero2;

//Exibe os resultados
JOptionPane.showMessageDialog(
null,result, "comparação do resultado",
JOptionPane.INFORMATION_MESSAGE );

Esses if’s definem o valor de result. Note que a cada if, concatena-se o texto atual de result com um novo texto. Por isso que quando exibe o result dentro do JOptionPane sai tudo ao mesmo tempo…
Dê uma estudada nesta estrutura e mude da maneira que achar melhor :slight_smile:

Abraço!

Criado 27 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 1
Participantes 2