Segue o codigo fonte do programa, agora a função que está apresentando essa anomalia é o void metodo_misto. de agora já peço desculpas pelo meu codigo kkkkkk eu não estudo a área mas coloco em pratica para fazer umas coisas que me ajudem no dia a dia, o codigo pode ser meio confuso;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
package programadeteste;
public class Programadeteste {
public static void main(String[] args) {
// tradução da UI do JOPTIONPANE
UIManager.put("OptionPane.cancelButtonText", "Cancelar");
UIManager.put("OptionPane.noButtonText", "Não");
UIManager.put("OptionPane.yesButtonText", "Sim");
// Mensagem Incial
JOptionPane.showMessageDialog(null, "Conversão 1.0\nDesenvolvido por:"
+ " Eduardo Cipriano");
// Chamando menu principal
new Programadeteste().metodo();
}
//------------------------- metodo de seleção -----------------------------
public void metodo(){
String menu;
menu = JOptionPane.showInputDialog(null, "DIGITE O PARAMETRO DE CONVERSAO\n"
+ "1 - CM para MM\n2 - MM para CM\n3 - CM para Polegadas\n4 - Polegadas para CM"
+ "\n8 - Parametro Misto");
int menu1 = Integer.parseInt(menu);
if(menu1 == 1){
conv_cm_mm();
}
if(menu1 == 2){
conv_mm_cm();
}
if(menu1 == 3){
conv_cm_pl();
}
if(menu1 == 4){
conv_pl_cm();
}
//if(menu1 > 4){
// JOptionPane.showMessageDialog(null, "Digite um metodo Valido");
// metodo();
//}
if(menu1 == 8){
metodo_misto();
}
if(menu1 == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
}
// --------------- conversor de cm para mm -------------------------------------
public void conv_cm_mm(){
String c1_cm;
c1_cm = JOptionPane.showInputDialog(null,"Digite o Valor em CM");
double c1_cm1 = Double.parseDouble(c1_cm);
double c1_r = c1_cm1*10;
JOptionPane.showMessageDialog(null, c1_cm1 + " CM equivale a " +c1_r +" MM");
double c1_final = JOptionPane.showConfirmDialog(null,"Desejar Converter"
+ " com os mesmos parametros ?","Conversão 1.0",JOptionPane.YES_NO_CANCEL_OPTION);
if(c1_final == JOptionPane.YES_OPTION){
conv_cm_mm();
}
if(c1_final == JOptionPane.NO_OPTION){
metodo();
}
if(c1_final == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
}
//--------------- conversor de mm para cm ----------------------------------
public void conv_mm_cm(){
String c1_cm;
c1_cm = JOptionPane.showInputDialog(null,"Digite o Valor em MM");
int c1_cm1 = Integer.parseInt(c1_cm);
int c1_r = c1_cm1/10;
JOptionPane.showMessageDialog(null, c1_cm1 + " MM equivale a " +c1_r +" CM");
int c1_final = JOptionPane.showConfirmDialog(null,"Desejar Converter"
+ " com os mesmos parametros ?","Conversão 1.0",JOptionPane.YES_NO_CANCEL_OPTION);
if(c1_final == JOptionPane.YES_OPTION){
conv_mm_cm();
}
if(c1_final == JOptionPane.NO_OPTION){
metodo();
}
if(c1_final == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
}
public void conv_cm_pl(){
JOptionPane.showMessageDialog(null,"O Sistema Internacional de"
+ " Unidades (SI),\n não recomenda utilização da polegada\n"
+ "A norma internacional ISO 80000-4, cuja versão brasileira atual é a ABNT NBR ISO 80000-4:2007\n"
+ "Também renega as unidades não recomendadas");
String c1_cm;
c1_cm = JOptionPane.showInputDialog(null,"Digite o Valor em CM");
double c1_cm1 = Double.parseDouble(c1_cm);
double c1_r = c1_cm1/2.54;
JOptionPane.showMessageDialog(null, c1_cm1 + " CM equivale a " +c1_r +" Polegadas");
int c1_final = JOptionPane.showConfirmDialog(null,"Desejar Converter"
+ " com os mesmos parametros ?","Conversão 1.0",JOptionPane.YES_NO_CANCEL_OPTION);
if(c1_final == JOptionPane.YES_OPTION){
conv_cm_pl();
}
if(c1_final == JOptionPane.NO_OPTION){
metodo();
}
if(c1_final == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
}
public void conv_pl_cm(){
JOptionPane.showMessageDialog(null,"O Sistema Internacional de"
+ " Unidades (SI),\n não recomenda utilização da polegada\n"
+ "A norma internacional ISO 80000-4, cuja versão brasileira atual é a ABNT NBR ISO 80000-4:2007\n"
+ "Também renega as unidades não recomendadas");
String c1_cm;
c1_cm = JOptionPane.showInputDialog(null,"Digite o Valor em Polegadas");
double c1_cm1 = Double.parseDouble(c1_cm);
double c1_r = c1_cm1*2.54;
JOptionPane.showMessageDialog(null, c1_cm1 + " Polegadas equivale a " +c1_r +" CM");
int c1_final = JOptionPane.showConfirmDialog(null,"Desejar Converter"
+ " com os mesmos parametros ?","Conversão 1.0",JOptionPane.YES_NO_CANCEL_OPTION);
if(c1_final == JOptionPane.YES_OPTION){
conv_pl_cm();
}
if(c1_final == JOptionPane.NO_OPTION){
metodo();
}
if(c1_final == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
}
public void metodo_misto(){
JOptionPane.showMessageDialog(null, "Bem Vindo ao Metodo Misto\n"
+ "Instruções\n"
+ "1 - Digite o valor da medida\n" // medida1
+ "2 - Escolha a Unidade de Medida correspondente\n" // primeiromenu
+ "3 - Escolha O metodo de Soma ou Subtração\n" //somaousub
+ "4 - Digite a Segunda Medida\n" //medida2
+ "5 - Escolha a unidade da segunda medida\n" //segundomenu
+ "6 - Defina a Medida de saida");
//----------------------------------------------------------------------
double medida1,medida2;
int cm,mm,pl,m,primeiromenu,somaousub,segundomenu;
String valor1 = JOptionPane.showInputDialog(null,"Digite o valor da medida");
medida1 = Double.parseDouble(valor1);
String selecaounidade1 = JOptionPane.showInputDialog(null,"Digite o valor referente a unidade\n"
+ "1 - M\n"
+ "2 - CM\n"
+ "3 - MM\n"
+ "4 - Polegadas");
primeiromenu = Integer.parseInt(selecaounidade1);
String selecaooperacao = JOptionPane.showInputDialog(null,"Operação\n"
+ "1 - Soma\n"
+ "2 - Subtração");
somaousub = Integer.parseInt(selecaooperacao);
String valor2 = JOptionPane.showInputDialog(null,"Digite o valor da segunda medida");
medida2 = Double.parseDouble(valor2);
String selecaounidade2 = JOptionPane.showInputDialog(null,"Digite o valor referente a segunda unidade\n"
+ "1 - M\n"
+ "2 - CM\n"
+ "3 - MM\n"
+ "4 - Polegadas");
segundomenu = Integer.parseInt(selecaounidade2);
//----------- Conversão de unidades recebidas para MM --------------------
double conv1,conv2; // variaveis que serao armazenadas os valores convertidos
conv1 = 0;
conv2 = 0;
String[] unidades;
unidades = new String[8];
if(primeiromenu == 1){
//conversao da primeira medida M em MM
conv1 = medida1 / 1000;
unidades[0] = "M";
}
if(primeiromenu == 2){
// conversao da primeira medida CM em MM
conv1 = medida1 / 100;
unidades[1] = "CM";
}
if(primeiromenu == 3){
//conversao da primeira medida MM em MM
conv1 = medida1;
unidades[2] = "MM";
}
if(primeiromenu == 4){
//conversao da primeira medida de PL em MM
double interno1 = medida1 * 2.54;
conv1 = interno1 / 100;
unidades[3] = "Polegadas";
}
// ---------------------- fim da primeira medida --------------------------
// ---------------------- conversao da segunda medida ---------------------
if(segundomenu == 1){
//conversao da segunda medida M em MM
conv2 = medida2 / 1000;
unidades[4] = "M";
}
if(segundomenu == 2){
// conversao da segunda medida CM em MM
conv2 = medida2 / 100;
unidades[5] = "CM";
}
if(segundomenu == 3){
//conversao da segunda medida MM em MM
conv2 = medida2;
unidades[6] = "MM";
}
if(segundomenu == 4){
double interno2 = medida2 * 2.54;
conv2 = interno2 / 100;
unidades[7] = "Polegadas";
}
//--------------------- fim das conversoes de medidas --------------------------
//============================= inicio da soma =================================
double finalvalorsoma; // variavel da conv1 + conv2;
finalvalorsoma = 1;
if(somaousub == 1){
finalvalorsoma = conv1 + conv2;
}
//========================= Inicio da subtração=================================
if(somaousub == 2){
finalvalorsoma = conv1 - conv2;
}
// ======================== fim da soma ou subtração ===========================
//====================== inicio mensagem verificação ---------------------------
String medidaver,medidaver1;
medidaver = "a";
medidaver1 = "a";
if(primeiromenu == 1){
medidaver = unidades[0];
}
if(primeiromenu == 2){
medidaver = unidades[1];
}
if(primeiromenu == 3){
medidaver = unidades[2];
}
if(primeiromenu == 4){
medidaver = unidades[3];
}
//-------------- final atribuição da primeira medida ---------------------------
if(segundomenu == 1){
medidaver1 = unidades[4];
}
if(segundomenu == 2){
medidaver1 = unidades[5];
}
if(segundomenu == 3){
medidaver1 = unidades[6];
}
if(segundomenu == 4){
medidaver1 = unidades[7];
}
//============= final atribuição da segunda medida ==========================
//============= verificação da operação ======================================
String operacaover;
operacaover = "a";
if(somaousub == 1){
operacaover = "\b+";
}
if(somaousub == 2){
operacaover = "\b-";
}
// ================= final da verificação da operação =========================
//============== inicio do JOPTIONPANE DE VALOR =============================
JOptionPane.showMessageDialog(null,""+medida1 +" "+ medidaver + " " + operacaover + " " +
medida2 +" "+ medidaver1);
//============= final do JOPTIONPANE DE VALOR =================================
// ======================== inicio menu final ==================================
String menufinal = JOptionPane.showInputDialog(null,"Digite a Unidade de Saida\n"
+ "1 - M\n"
+ "2 - CM\n"
+ "3 - MM\n"
+ "4 - Polegadas");
int menufinal1 = Integer.parseInt(menufinal);
// ------------- parte final ---------------------------------------------------
if(menufinal1 == 1){
//resultado final de MM para M
double r_mm_m = finalvalorsoma / 1000;
JOptionPane.showMessageDialog(null,"E igual a\n" + r_mm_m +" M");
}
if(menufinal1 == 2){
//resultado final de MM para CM
double r_mm_cm = finalvalorsoma / 100;
JOptionPane.showMessageDialog(null,"E igual a\n" + r_mm_cm +" CM");
}
if(menufinal1 == 3){
//resultado final de MM para MM
double r_mm_mm = finalvalorsoma;
JOptionPane.showMessageDialog(null,"E igual a\n" + r_mm_mm +" MM");
}
if(menufinal1 == 4){
//resultado final de MM para polegadas
double r_mm_pl = finalvalorsoma * 100; // transformando MM para CM
double interno3;
interno3 = r_mm_pl / 2.54;
JOptionPane.showMessageDialog(null,"E igual a\n" + interno3 +" Polegadas");
}
//----------------------- fim da parte final ----------------------------------
//---------------------- JOPTION DA TROCA DE PARAMETRO ------------------------
int c1_final = JOptionPane.showConfirmDialog(null,"Desejar Converter"
+ " com os mesmos parametros ?","Conversão 1.0",JOptionPane.YES_NO_CANCEL_OPTION);
if(c1_final == JOptionPane.YES_OPTION){
metodo_misto();
}
if(c1_final == JOptionPane.NO_OPTION){
metodo();
}
if(c1_final == JOptionPane.CANCEL_OPTION){
System.exit(0);
}
//--------------------- FIM DA TROCA DE PARAMETRO -----------------------------
} // fim do void
}// fim do programa