Java - while con respuesta

   
Vista:

while con respuesta

Publicado por Josue (7 intervenciones) el 06/10/2008 06:20:33
hola amigos quisiera saber si alguien me puede ayudar tengo un programa quisiera saber como puedo hacer un while con respuesta con un JOptionPane.showMessagedialog(null,"mensaje", "titulo barra", YES_NO_OPTION) es algo asi es que no logro que me funcione aqui esta el programa corre pero solo le falta eso ya que no se cierra porque no se como leer la respuesta con ese messagedialog se lo agradeceria de antemano que me ayuden

import java.io.*;
import javax.swing.JOptionPane;
class SerExpress {
private String servicio;
private int tipopaque;
private double kilos;
public void asignar (String s1, int t1, double k1){
tipopaque = t1; servicio = s1; kilos = k1; }
public double calcular(){
double libras;
libras = kilos * 2.2;
return libras; }
public double calcularC(double libra){
double total = 0;
if ((tipopaque == 1 || tipopaque == 2 || tipopaque == 4) && (servicio.equalsIgnoreCase("DSP")))
total = 10.00 + 1.25 * (libra -1);
else if ((tipopaque == 1 || tipopaque == 2 || tipopaque == 4) && servicio.equalsIgnoreCase("DSN"))
total = 8.00 + 1 * (libra - 1);
else if ((tipopaque == 1 || tipopaque == 2 || tipopaque == 4) && servicio.equalsIgnoreCase("NOD"))
total = 4.00 + 0.50 * (libra - 1);
else if (tipopaque == 3 && servicio.equalsIgnoreCase("DSP"))
total = 20.00;
else if (tipopaque == 3 && servicio.equalsIgnoreCase("DSN"))
total = 10.00;
return total; }
public String traerP(){
String paquete;
if (tipopaque == 1)
paquete = "Caja";
else if (tipopaque == 2)
paquete = "Bolsa";
else if (tipopaque == 3)
paquete = "Carta";
else
paquete = "Maleta";
return paquete; }
public String traerT(){
String tipo = "";
if (servicio.equalsIgnoreCase("DSP"))
tipo = "Prioritario";
else if (servicio.equalsIgnoreCase("DSN"))
tipo = "Normal";
else if (servicio.equalsIgnoreCase("NOD"))
tipo = "No DIsponible";
return tipo; }
}
class Entrega { public static void main (String arg [])throws IOException {
String input, prueba = "", tipservic = ""; int resp = 1;
int tipaque = 0, op = 0; boolean leido = true;
double kilos = 0, libras;
SerExpress mensajero = new SerExpress();
while (resp == 1){
do { try{
input = JOptionPane.showInputDialog(null, "Introduzca el tipo de paquete:" + " 1. Caja" + " 2. Bolsa" + " 3. Carta" + " 4. Maletas" + " ","Tipo de Paquete", JOptionPane.QUESTION_MESSAGE);
tipaque = Integer.parseInt(input);
leido = true;
}
catch(NumberFormatException er){
JOptionPane.showMessageDialog(null, "No es un número, es una cadena de texto.", "Error", JOptionPane.ERROR_MESSAGE);
leido = false;
} }while (!leido);
while (tipaque > 4 || tipaque <= 0){
do { try{
input = JOptionPane.showInputDialog(null, "Introduzca el tipo de paquete:" + " 1. Caja" + " 2. Bolsa" + " 3. Carta" + " 4. Maletas" + " ","Tipo de Paquete", JOptionPane.QUESTION_MESSAGE);
tipaque = Integer.parseInt(input);
leido = true;
}
catch(NumberFormatException er){
JOptionPane.showMessageDialog(null, "No es un número, es una cadena de texto.", "Error", JOptionPane.ERROR_MESSAGE);
leido = false;
} }while (!leido);
}
while (op == 0){
tipservic = JOptionPane.showInputDialog(null, "Introduzca el tipo servicio:" + " DSP = Día siguiente Pioritario" + " DSN = Día siguiente Normal" + " NOD = 2 Días");
if (tipservic.equalsIgnoreCase("NOD") && tipaque == 3)
JOptionPane.showMessageDialog(null, "EL servicio de dos dias no esta disponible para cartas");
else if (tipservic.equalsIgnoreCase("NOD") || tipservic.equalsIgnoreCase("DSP") || tipservic.equalsIgnoreCase("DSN"))
op = 1;
else
JOptionPane.showMessageDialog(null, "No Introdujo un tipo de servicio correcto", "Error", JOptionPane.ERROR_MESSAGE);
}
if (tipaque != 3){
do { try{
input = JOptionPane.showInputDialog(null, "Introduzca el peso del paquete en kilos");
kilos = Double.parseDouble(input);
leido = true;
}
catch(NumberFormatException er){
JOptionPane.showMessageDialog(null, "No es un número, es una cadena de texto.", "Error", JOptionPane.ERROR_MESSAGE);
leido = false;
} }while (!leido);

while (kilos < 0){
do { try{
input = JOptionPane.showInputDialog(null, "Introduzca el peso del paquete en kilos");
kilos = Double.parseDouble(input);
leido = true;
}
catch(NumberFormatException er){
JOptionPane.showMessageDialog(null, "Un kilogramo es el peso mínimo", "Info", JOptionPane.INFORMATION_MESSAGE);
leido = false;
} }while (!leido);}
}
mensajero.asignar(tipservic, tipaque, kilos);
op = 0;
JOptionPane.showMessageDialog(null, " Paquete: " + mensajero.traerP () + " Peso: " + mensajero.calcular() + " Libras" + " Tipo de Servicio: " + mensajero.traerT() + " Costo total: $" + mensajero.calcularC(mensajero.calcular()));
}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:while con respuesta

Publicado por reynaldo (57 intervenciones) el 07/10/2008 20:41:32
Utiliza la sentencia de control Do... While
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:while con respuesta

Publicado por Josue (7 intervenciones) el 07/10/2008 20:47:53
gracias por la ayuda pero ya lo hice:
lo hice con un showConfirmDialog
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar