Criar um codigo utilizando JOptionPane para receber apenas numerico

2 respostas
R

código receber um dados numérico so que precisa criticar para não receber texto no lugar que for para receber numérico. Se alguém nos ajudar .

public static double entra_numeros(String aux)

{

double valor;

String X = JOptionPane.showInputDialog(null,aux);

X = X.replace(,,.);

valor = Double.parseDouble(X);

return valor;

}

2 Respostas

danielbussade

Olá seria isto:

public static double entra_numeros() { 
	double valor=0; 
	String X = JOptionPane.showInputDialog(null,"Digite um numero"); 
	X = X.replace(',','.'); 
	try {
		valor = Double.parseDouble(X); 
		
	} catch (NumberFormatException e) {
		JOptionPane.showMessageDialog(null, "Número inválido.");
		entra_numeros();
	}
	return valor;
	}

Att

R
agora esta criticando e nao recebe texto, so que nao esta armazenando o valor que é digitado depois. veja o que esta faltando.
import java.io.*;
import javax.swing.*;
public class orcamento_ricardo{
	public static void main(String[] args){
		
		int i, e;
		
		String mensagem ="", melhoremp="", total    ="", cabecalho="", mensagem0="";
		String mensagem1="", mensagem2="", mensagem3="", mensagem4="", mensagem5="";
		String mensagem6="", mensagem7="", mensagem8="", mensagem9="", mensagem10="";
		String mensagem11="";
		String[]   emp        = new String[3];
		String[]   item       = new String[9];
		double     somamenor, somamedio;
		double[]   somaemp    = new double[3];
		double[]   somaitem   = new double[9];
		double[]   mediaitem  = new double[9];
		double[][] itemvl     = new double[3][9];
		double[][] menor      = new double[1][9];
		
		item[0] = "Som e iluminação-------";
		item[1] = "Animador---------------";
		item[2] = "Buffet de salgados-----";
		item[3] = "Buffet de doces--------";
		item[4] = "Fotografia e filmagem--";
		item[5] = "Garçons----------------";
		item[6] = "Bolo-------------------";
		item[7] = "Refrigerantes----------";
		item[8] = "Locacao de espaço------";

		// Digitacao dos valores
		for (e=0;e<=2;e++){
			emp[e]= entra_texto("Digite o nome da Empresa: " +(e+1));
			for (i=0;i<=8;i++){
				itemvl[e][i]= entra_numeros("Empresa: " + emp[e]+ "\n Qual o valor do " + item[i]+ " ? ");
				}
		}
		// Soma dos valores por empresa e por item
		for (e=0;e<=2;e++){
			for (i=0;i<=8;i++){
				somaemp[e]  = somaemp[e]  + itemvl[e][i];
				somaitem[i] = somaitem[i] + itemvl[e][i];
			}
		}

		//Media dos valores por item
		for (i=0;i<=8;i++){
			mediaitem[i] = aproxima(somaitem[i]/3);
		}

		//Menor Orçamento empresa 
			for (e=0; e<=0; e++){
				if (somaemp[e] < somaemp[e+1])
				    melhoremp = emp[e];
					else
					melhoremp = emp[e+1];	
				if (somaemp[e+1] < somaemp[e+2])
					melhoremp = emp[e+1];
					else
					melhoremp = emp[e+2];
				if (somaemp[e+2] < somaemp[e])
					melhoremp = emp[e+2];
					else
					melhoremp = emp[e];
			}
			
			//MENOR ORCAMENTO
			for (e=0; e<=0; e++){
				for (i=0; i<=8; i++){
					if (itemvl[e][i] < itemvl[e+1][i])
						menor[0][i] = itemvl[e][i];
						else
						menor[0][i] = itemvl[e+1][i];	
					if (itemvl[e+1][i] < itemvl[e+2][i])
						menor[0][i] = itemvl[e+1][i];
						else
						menor[0][i] = itemvl[e+2][i];	
					if (itemvl[e+2][i] < itemvl[e][i])
						menor[0][i] = itemvl[e+2][i];
						else
						menor[0][i] = itemvl[e][i];
				}
			}
			
			// MONTAGEM DO RELATORIO
			cabecalho = "-------------------COTACAO DE SERVICOS DE BUFFET---------------------" + "\r\n"; 
			mensagem0 = item[0] + "\t" + itemvl[0][0] + "\t" + itemvl[1][0] + "\t" + itemvl[2][0] + "\t" + menor[0][0] + "\t" + mediaitem[0]+ "\r\n"; 
			mensagem1 = item[1] + "\t" + itemvl[0][1] + "\t" + itemvl[1][1] + "\t" + itemvl[2][1] + "\t" + menor[0][1] + "\t" + mediaitem[1]+ "\r\n";
			mensagem2 = item[2] + "\t" + itemvl[0][2] + "\t" + itemvl[1][2] + "\t" + itemvl[2][2] + "\t" + menor[0][2] + "\t" + mediaitem[2]+ "\r\n";
			mensagem3 = item[3] + "\t" + itemvl[0][3] + "\t" + itemvl[1][3] + "\t" + itemvl[2][3] + "\t" + menor[0][3] + "\t" + mediaitem[3]+ "\r\n";
			mensagem4 = item[4] + "\t" + itemvl[0][4] + "\t" + itemvl[1][4] + "\t" + itemvl[2][4] + "\t" + menor[0][4] + "\t" + mediaitem[4]+ "\r\n";
			mensagem5 = item[5] + "\t" + itemvl[0][5] + "\t" + itemvl[1][5] + "\t" + itemvl[2][5] + "\t" + menor[0][5] + "\t" + mediaitem[5]+ "\r\n";
			mensagem6 = item[6] + "\t" + itemvl[0][6] + "\t" + itemvl[1][6] + "\t" + itemvl[2][6] + "\t" + menor[0][6] + "\t" + mediaitem[6]+ "\r\n";
			mensagem7 = item[7] + "\t" + itemvl[0][7] + "\t" + itemvl[1][7] + "\t" + itemvl[2][7] + "\t" + menor[0][7] + "\t" + mediaitem[7]+ "\r\n";
			mensagem8 = item[8] + "\t" + itemvl[0][8] + "\t" + itemvl[1][8] + "\t" + itemvl[2][8] + "\t" + menor[0][8] + "\t" + mediaitem[8]+ "\r\n";
			mensagem  = mensagem0 + mensagem1 + mensagem2 + mensagem3 + mensagem4 + mensagem5 + mensagem6 + mensagem7 + mensagem8;
			somamenor = aproxima(menor[0][0] + menor[0][1] + menor[0][2] + menor[0][3] + menor[0][4] + menor[0][5] + menor[0][6] + menor[0][7] + menor[0][8]);
			somamedio = aproxima(mediaitem[0] + mediaitem[1] + mediaitem[2] + mediaitem[3] + mediaitem[4] + mediaitem[5] + mediaitem[6] + mediaitem[7] + mediaitem[8]);
			total     =  "TOTAL------------------" + somaemp[0] + "\t" + somaemp[1] + "\t" + somaemp[2] + "\t" + somamenor + "\t" + somamedio + "\r\n";
			mensagem9 = "A empresa que possui o melhor orçamento é: " + melhoremp + "\r\n";
			mensagem10= "O melhor orçamento que se pode obter é   : " + somamenor + "\r\n";
			mensagem11= "O orçamento médio é                      : " + somamedio + "\r\n";

			// MENSAGEM NA TELA
			JOptionPane.showMessageDialog(null,(cabecalho + mensagem + somamenor + somamedio + total + mensagem9 + mensagem10 + mensagem11));
						
			//CRIACAO DO ARQUIVO TEXTO
			try {
			DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("c:/teste.txt")));
			out.writeBytes(cabecalho);
			out.writeBytes("\r\n");
			out.writeBytes("\r\n");
			out.writeBytes("---------------------------------------------------------------------");
			out.writeBytes("\r\n");
			out.writeBytes("ITEM-------------------" + emp[0]+ "\t" + emp[1] + "\t" +  emp[2] + "\t" + "MENOR" + "\t" + "MEDIA" + "\r\n");
			out.writeBytes("---------------------------------------------------------------------" + "\r\n");
			out.writeBytes(mensagem);
			out.writeBytes("---------------------------------------------------------------------" + "\r\n");
			out.writeBytes(total);
			out.writeBytes("\r\n");
			out.writeBytes("\r\n");
			out.writeBytes(mensagem9); 
			out.writeBytes(mensagem10);
			out.writeBytes(mensagem11);
			out.close();
		 	JOptionPane.showMessageDialog(null,"Arquivo criado com sucesso!","",1);
			}
			catch(IOException fr){
				JOptionPane.showMessageDialog(null,"Não foi possivel gravar!","Resultado",3);
			}
}
	public static double entra_numeros(String aux){
	double valor=0;
    String X = JOptionPane.showInputDialog(null,aux);
    X = X.replace(',','.');
    try {
        valor = Double.parseDouble(X);

    } catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(null, "valor digitados invalidos.");
        entra_numeros(aux);
    }   
    return valor;   
    }  

	public static String entra_texto(String aux)
	{
	String valor = JOptionPane.showInputDialog(null,aux); 
	return valor;
	}
	
	public static double aproxima(double valor_aprox)
	{
	valor_aprox  *= 100;
	valor_aprox = Math.ceil(valor_aprox);	
	valor_aprox  /= 100;
	return valor_aprox;
	}
}
Criado 2 de dezembro de 2007
Ultima resposta 2 de dez. de 2007
Respostas 2
Participantes 2