Duvida Scanner com JOptionPane

Galera, fiz um programa onde o usuário informa a região que deseja ir e selecionar o modo de viagem (se vai ser somente ida ou ida e volta), quando vou exibir tanto as perguntas como as respostas via prompt (System.out.println), funciona normalmente. Porém quando tento deixar mais ‘bonitinho’, utilizando o JOptionPane ele só roda até o segundo bloco de comando e não roda o resto do codigo
OBS: vou deixar em comentario o bloco de comando que está dando “erro”
Codigo : import java.util.*;

import javax.swing.*;

public class App {

public static void main(String[] args) throws Exception {

    

    int destino;

    int passagem;

    Scanner dados = new Scanner(System.in);     

    JOptionPane.showMessageDialog(null,"TABELA DE PREÇOS E REGIÕES\n"

            + "Região Norte | IDA R$ 500,00| IDA E VOLTA R$ 900,00\n"

            + "Região Nordeste | IDA R$ 350,00| IDA E VOLTA R$ 650,00\n"

            + "Região Centro - Oeste | IDA R$ 350,00| IDA E VOLTA R$600,00\n"

            + "Região Sul | IDA R$ 300,00| IDA E VOLTA R$ 550,00\n","INFORMAÇÕES",JOptionPane.PLAIN_MESSAGE);

    Integer.parseInt(JOptionPane.showInputDialog(null,"Qual o destino desejado ?\n"

            + "1 - Região Norte\n"

            + "2 - Região Nordeste\n"

            + "3 - Região Centro - Oeste\n"

            + "4 - Região Sul\n"

            + "Informe o destino desejado:"));

    destino = dados.nextInt();

   /* Integer.parseInt(JOptionPane.showInputDialog(null,"1 Para somente IDA\n"

            + "2 Para IDA e Volta\n"

            + "Informe :"));

    passagem = dados.nextInt(); */

            

    if((destino==1)&&(passagem==1)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Norte\n");

        JOptionPane.showMessageDialog(null,"\nR$500,00 reais - IDA\n");

    }

    

    else if ((destino==1)&&(passagem==2)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Norte\n");

        JOptionPane.showMessageDialog(null,"\n900.00 reais - IDA e VOLTA\n");

    }

    

    else if((destino==2)&&(passagem==1)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Nordeste\n");

        JOptionPane.showMessageDialog(null,"\n350.00 reais - IDA\n");

    }

    

    else if ((destino==2)&&(passagem==2)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Nordeste\n");

        JOptionPane.showMessageDialog(null,"\n650.00 reais - IDA e VOLTA\n");

    }

    

     else if((destino==3)&&(passagem==1)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Centro Oeste\n");

        JOptionPane.showMessageDialog(null,"\n350.00 reais - IDA\n");

    }

    

    else if ((destino==3)&&(passagem==2)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Centro Oeste\n");

        JOptionPane.showMessageDialog(null,"\n600.00 reais - IDA e VOLTA\n");

    }

    

    else if((destino==4)&&(passagem==1)){

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Sul\n");

        JOptionPane.showMessageDialog(null,"\n300.00 reais - IDA\n");

    }

    

    else{

        JOptionPane.showMessageDialog(null,"\nDESTINO: Regiao Sul\n");

        JOptionPane.showMessageDialog(null,"\n550.00 reais - IDA e VOLTA\n");

    }

}

}

Você não está atribuindo o retorno do Integer.parseInt em nenhuma variável.

1 curtida

Eu sou super novato em java, tem como você me falar como eu faço isso?

Como se atribui valor à uma variável em Java?
Você já faz isso, mas está atribuindo o resultado do nextInt() do Scanner mas você precisa do resultado da seleção do JOptonPane.

Apague essa linha:

destino = dados.nextInt();

E faz assim:

destino = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual o destino desejado ?\n"
        + "1 - Região Norte\n"
        + "2 - Região Nordeste\n"
        + "3 - Região Centro - Oeste\n"
        + "4 - Região Sul\n"
        + "Informe o destino desejado:"));
1 curtida