[RESOLVIDO] Ajuda com OptionDialog - Java

4 respostas
java
R

Olá pessoal estou tendo uma dificuldade com esse codigo:

Object[] options = { "Sim", "Não" };
	 int opcao = 0;
	 while (opcao == 0 || opcao == -1) { 

		opcao = JOptionPane.showOptionDialog(null,"Atenção - Ao clilar em SIM irá ser exutado o cálculo do VVE - Valor Venal da Edificação","Atenção",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE, null,options, options[0]);
		 
		
		if(opcao == -1)System.exit(0);
	 }

Eu gostaria que se o usuario clicasse em Sim o programa continua executando, se ele clica em não o programa para onde terminou e se ele clicar no x o programa finaliza !

Atenciosamente

4 Respostas

rodriguesabner
int reply = JOptionPane.showConfirmDialog(null, "Atenção - Ao clilar em SIM irá ser exutado o cálculo do VVE - Valor Venal da Edificação","Atenção", "Realizar Cálculo?", JOptionPane.YES_NO_OPTION);
        if (reply == JOptionPane.YES_OPTION) {
            //alguma coisa
        } else {
            System.exit(0);
        }
R

Muito obrigago orochimauru !

Só mais uma dúvida, se eu colocar todo o codigo dentro do else ira haver problema ou esta certo assim ?

int reply = JOptionPane.showConfirmDialog(null, "Atenção - Ao clilar em SIM irá ser exutado o cálculo do VVE - Valor Venal da Edificação","Atenção", "Realizar Cálculo?", JOptionPane.YES_NO_OPTION);
    if (reply == JOptionPane.YES_OPTION) {
        System.out.println("===========================================================================================================================");
	
	
	// Valor Venal da Edificação
	String vve;

	// Área da Edificação
	double ae = 0;

	/*
	 * Valor unitário M2 da construção obtido pela análise do tipo da edificação e o
	 * érfil de acabamento conforme registrado no cadastro imobiliário, com o
	 * enquadramento nas tabelas 8 e 12
	 */
	double vu;

	// Fator de localização
	double fl;
	// Fator Obsolescência
	double fo;
	// Fator de depreciação em função da área tombada
	double fdatt;
	
	boolean digitouLetras = false;
	
	double calc;
	
	String letter;

	double resultado;
	System.out.println("   --- Esta fórmula ira calcular o VALOR VENAL DA EDIFICACAO: ---");
	System.out.println("");
	System.out.println("   --- A fórmula é: ---");
	System.out.println("");
	System.out.println("");
	
	System.out.println("      *****************************");
	System.out.println("      * VVE = Ae x Vu x Fl x Fdat *");
	System.out.println("      *****************************");
	System.out.println("");
	System.out.println("");
	
	
	System.out.println("   Insira o valor de Ae: ");
	System.out.print("");
	
	do {
		try {
			ae = scan.nextDouble();
		} catch(InputMismatchException excepition) {
		// digitouLetras = true;
		JOptionPane.showMessageDialog(null,"   Erro: Digite apenas números no menu " +excepition);
		
		}
		
	}while(digitouLetras == true);
	
	
	
	
	System.out.println("");
	System.out.println("");
	
	System.out.println("   Insira o valor de Vu");
	System.out.print("");
	vu = scan.nextDouble();
	System.out.println("");
	System.out.println("");
	
	System.out.println("   Insira o valor de Fl");
	System.out.print("");
	fl = scan.nextDouble();
	System.out.println("");
	System.out.println("");
	
	System.out.println("   Insira o valor de Fo");
	System.out.print("");
	fo = scan.nextDouble();
	System.out.println("");
	System.out.println("");
	
	System.out.println("   Insira o valor de Fdat");
	System.out.print("");
	fdatt = scan.nextDouble();
	System.out.println("");
	System.out.println("");

	calc = ae * vu * fl * fo * fdatt;

	resultado = calc1 + calc;
	String dv = df.format(calc);
	String dw = df.format(resultado);

	// calc = calc *0.70;
	// calc = calc *1;
    System.out.println("   O valor venal da edificação é "+dv);
	System.out.println("");
	System.out.println("   O valor do calculo é  "+dw);
	System.out.println("");

	System.out.println("   --- Pressione a tecla R para recomecar o programa ---");
	letter = scan.nextLine();
	if (letter == "R" || letter == "r") {
		System.out.println("R pressionado");
		//letter();
		
	} else {
		System.out.println("");
		System.out.println("");
		System.out.println("--- Voce nao pressionou a letra R");
		System.out.println("Fim do programa");
		System.exit(0);

	}
    } else {
        System.exit(0);
    }
rodriguesabner

não tem problema, mas fica confuso.

Cria um método separado e depois só joga ele em cada condição, pra fazer a manutenção depois é melhor!!

R

Obrigado @rodriguesabner

[RESOLVIDO]

Criado 21 de novembro de 2019
Ultima resposta 21 de nov. de 2019
Respostas 4
Participantes 2