Foros del Web » Programación para mayores de 30 ;) » Java »

Como puedo resolver un problema con la condicion Switch

Estas en el tema de Como puedo resolver un problema con la condicion Switch en el foro de Java en Foros del Web. Hola a todos otra vez soy yo jejejejeje, bueno lo que pasa es lo siguiente, Quiero hacer un problema que tome el número de día ...
  #1 (permalink)  
Antiguo 20/02/2012, 19:39
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Pregunta Como puedo resolver un problema con la condicion Switch

Hola a todos otra vez soy yo jejejejeje, bueno lo que pasa es lo siguiente, Quiero hacer un problema que tome el número de día en un textfield y el número de mes en otro textfield entonces quiero que me muestre el dia en letras (1-Lunes, 2-Martes, etc) y el mes con letras (1-Enero, 2-Febrero,etc) pero en otro textfield. pero no se si hay un formula para hacerlo sin usar dos switch o es que hay que utilizar unos if dentro del switch para que se cumpla la condición... pues si alguien sabe de un formula para que cuando digite el día y el mes me mande el nombre del dia del mes que e digitado, pues solo quiero saber que condiciones van el el switch... se lo agradecería de verdad...
  #2 (permalink)  
Antiguo 20/02/2012, 21:32
Avatar de Sirius381  
Fecha de Ingreso: abril-2006
Mensajes: 129
Antigüedad: 18 años
Puntos: 12
Respuesta: Como puedo resolver un problema con la condicion Switch

No se me ocurre nada mas que tomar las propiedades del textfield y analizar esa cadena pero si... con dos switch, seguro que algun master viene y lo resuelve enseguida, por curiosidad, por que no quieres usar los dos switch?

saludos!
__________________
Don Ramón Fan
  #3 (permalink)  
Antiguo 20/02/2012, 23:11
Avatar de jslonim  
Fecha de Ingreso: febrero-2012
Ubicación: Rosario, Santa Fe, Argentina
Mensajes: 4
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Como puedo resolver un problema con la condicion Switch

Hola! Creo que entendi tu problema y aque hize la solucion (Con fines educativos, trata de hacer tus trabajos, que te los hagan en el foro no esta bien en realidad) si, se usan 2 JTextFields y yo use 2 labels para mostrar los resultados usando 2 switch pero si no quieres puedes cambiarlos por if y usando el elseif para diferenciar el tema es que tendras que poner la condicion despues de cada uno y se hace muy muy largo , con switch es mas corto y no veo porque no usarlo, por las dudas aca esta con el switch y transofrmando los valores a int porque el textfield entrega un string. Espero haberte ayudado de todas maneras, un saludo!.
----------------------------------------------------------------------------------------------------
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Event.*;



public class trabajo extends JFrame implements ActionListener {
JTextField texto1 = new JTextField (5);
JTextField texto2 = new JTextField (5);
JLabel etiqueta = new JLabel();
JLabel etiqueta2 = new JLabel();
JButton boton = new JButton("Aceptar");
public trabajo(){
super ("Dia y mes");
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize (700,200);
FlowLayout layout = new FlowLayout();
setLayout (layout);
boton.addActionListener(this);

add (boton);
add (texto1);
add(texto2);
add (etiqueta);
add (etiqueta2);
texto1.setText("Dia");
texto2.setText("Mes");
setVisible (true);
}


public void actionPerformed(ActionEvent ae) {
String var1 = texto1.getText();
String var2 = texto2.getText();
int var3 = Integer.parseInt(var1);
int var4 = Integer.parseInt(var2);
switch (var3){
case 1 : etiqueta.setText("Lunes");
break;
case 2 : etiqueta.setText("Martes");
break;
case 3 : etiqueta.setText("Miercoles");
break;
case 4 : etiqueta.setText("Jueves");
break;
case 5 :etiqueta.setText("Viernes");
break;
case 6: etiqueta.setText("Sabado");
break;
case 7 : etiqueta.setText("Domingo");
break;
}
switch (var4){
case 1 : etiqueta2.setText("/Enero");
break;

case 2 : etiqueta2.setText("/Febrero");
break;

case 3 : etiqueta2.setText("/Marzo");
break;

case 4 : etiqueta2.setText("/Abril");
break;

case 5 : etiqueta2.setText("/Mayo");
break;
case 6 : etiqueta2.setText("/Junio");
break;
case 7 : etiqueta2.setText("/Julio");
break;

case 8 : etiqueta2.setText("/Agosto");
break;

case 9 : etiqueta2.setText("/Septiembre");
break;

case 10 : etiqueta2.setText("/octubre");
break;

case 11 : etiqueta2.setText("/Noviembre");
break;

case 12 : etiqueta2.setText("/Diciembre");
break;


}
var1 = "";
var2 = "";
var3 = 0;
var4 = 0;
}
public static void main (String args[]){
trabajo work = new trabajo();}
-----------------------------------------------------------------------------------------------------
  #4 (permalink)  
Antiguo 21/02/2012, 06:19
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como puedo resolver un problema con la condicion Switch

Mucho más sencillo es tener dos arrays donde guardas las cadenas de los meses y de los días.

Código Java:
Ver original
  1. String[] meses = {"Enero","Febrero", "Marzo", ...}
  2. String[] dias = {"Lunes","Martes", ...}
  3. String diaTexto = null;
  4. String mesTexto = null;
  5. int dia = -1;
  6. int mes = -1;
  7.  
  8. try{
  9.  dia = Integer.parseInt(txtDia.getText());
  10. }catch (FormatNumberException e){}
  11.  
  12. try{
  13.  mes = Integer.parseInt(txtMes.getText());
  14. }catch (FormatNumberException e){}
  15.  
  16. if (dia > 0 and dia < 8)
  17.  diaTexto = dias[dia];
  18.  
  19. if (mes> 0  and mes < 13)
  20.  mesTexto = meses[mes];

Saludos y espero que te sirva
  #5 (permalink)  
Antiguo 21/02/2012, 13:15
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
De acuerdo Respuesta: Como puedo resolver un problema con la condicion Switch

Cita:
Iniciado por Sirius381 Ver Mensaje
No se me ocurre nada mas que tomar las propiedades del textfield y analizar esa cadena pero si... con dos switch, seguro que algun master viene y lo resuelve enseguida, por curiosidad, por que no quieres usar los dos switch?

saludos!
Pues no es que no quiera utilizar dos switch si no que me preguntaba si se podría realizar con uno, pero creo que con dos es mas ordenado y mucho mejor, y gracias por la información....
  #6 (permalink)  
Antiguo 21/02/2012, 13:23
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
De acuerdo Respuesta: Como puedo resolver un problema con la condicion Switch

Cita:
Iniciado por jslonim Ver Mensaje
Hola! Creo que entendi tu problema y aque hize la solucion (Con fines educativos, trata de hacer tus trabajos, que te los hagan en el foro no esta bien en realidad) si, se usan 2 JTextFields y yo use 2 labels para mostrar los resultados usando 2 switch pero si no quieres puedes cambiarlos por if y usando el elseif para diferenciar el tema es que tendras que poner la condicion despues de cada uno y se hace muy muy largo , con switch es mas corto y no veo porque no usarlo, por las dudas aca esta con el switch y transofrmando los valores a int porque el textfield entrega un string. Espero haberte ayudado de todas maneras, un saludo!.
----------------------------------------------------------------------------------------------------
Código:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Event.*;

public class trabajo extends JFrame implements ActionListener {
JTextField texto1 = new JTextField (5);
JTextField texto2 = new JTextField (5);
JLabel etiqueta = new JLabel();
JLabel etiqueta2 = new JLabel();
JButton boton = new JButton("Aceptar");
public trabajo(){
    super ("Dia y mes");
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    setSize (700,200);
    FlowLayout layout = new FlowLayout();
    setLayout (layout);
    boton.addActionListener(this);
    
    add (boton);
    add (texto1);
    add(texto2);
    add (etiqueta);
    add (etiqueta2);
    texto1.setText("Dia");
    texto2.setText("Mes");
    setVisible (true);
    }

  
    public void actionPerformed(ActionEvent ae) {
    String var1 = texto1.getText();
    String var2 = texto2.getText();
    int var3 = Integer.parseInt(var1);
    int var4 = Integer.parseInt(var2);
    switch (var3){
        case 1 : etiqueta.setText("Lunes");
           break; 
        case 2 : etiqueta.setText("Martes"); 
           break;
        case 3 : etiqueta.setText("Miercoles"); 
           break;
        case 4 : etiqueta.setText("Jueves");
           break;    
        case 5 :etiqueta.setText("Viernes");
           break;
       case  6: etiqueta.setText("Sabado");
           break; 
       case 7 : etiqueta.setText("Domingo");
           break;
    }
    switch (var4){
        case 1 : etiqueta2.setText("/Enero");
           break;
          
        case 2 : etiqueta2.setText("/Febrero");
           break; 
          
        case 3 : etiqueta2.setText("/Marzo");
           break; 
          
        case 4 : etiqueta2.setText("/Abril");
           break; 
          
        case 5 : etiqueta2.setText("/Mayo");
           break; 
        case 6 : etiqueta2.setText("/Junio");
           break; 
        case 7 : etiqueta2.setText("/Julio");
           break; 
           
        case 8 : etiqueta2.setText("/Agosto");
           break; 
           
        case 9 : etiqueta2.setText("/Septiembre");
           break; 
           
        case 10 : etiqueta2.setText("/octubre");
           break; 
           
        case 11 : etiqueta2.setText("/Noviembre");
           break; 
           
        case 12 : etiqueta2.setText("/Diciembre");
           break; 
      
           
    }
   var1 = "";
   var2 = "";
   var3 = 0;
   var4 = 0;
  }
public static void main (String args[]){
trabajo work = new trabajo();}
-----------------------------------------------------------------------------------------------------
Pues gracias por la información y veo que tu utilizaste fue la librería de JFrame, pero yo me puse en la tarea de utilizar la de Applet, pues con lo que me has dicho quise probarlo de esa forma, pero lo que me hacia falta era de como pasar un valor (Int) a (String) pero me puse a recordar y con lo que me has mostrado me quedo de esta forma:

Código:
package fechaapplet;

import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @param 20/02/2012
 * @author Deivis Andres Herrera Julio
 */
public class FechaApplet extends Applet implements ActionListener {
    Label l1, l2, l3;
    TextField t1, t2, t3, t4;
    Button b;
    public FechaApplet(){
        l1 = new Label("Dia");
        t1 = new TextField("",3);
        l2 = new Label("Mes");
        t2 = new TextField("",3);
        l3 = new Label("Fecha con Letras");
        t3 = new TextField("",3);
        t4 = new TextField("",3);
        b = new Button("Cambiar");
        add(l1);
        add(t1);
        add(l2);
        add(t2);
        add(b);
        add(l3);
        add(t3);
        add(t4);
        b.addActionListener(this);
    }
    public void paint(Graphics g){
        String diaP = String.valueOf(t1.getText());
        String mesP = String.valueOf(t2.getText());
        int dia = Integer.parseInt(diaP);
        int mes = Integer.parseInt(mesP);
        
        switch(dia){
            case 1: t3.setText("Lunes");
            break;
            case 2: t3.setText("Martes");
            break;
            case 3: t3.setText("Miercoles");
            break;
            case 4: t3.setText("Jueves");
            break;
            case 5: t3.setText("Viernes");
            break;
            case 6: t3.setText("Sabado");
            break;
            case 7: t3.setText("Domingo");
            break;
        }
        switch(mes){
            case 1: t4.setText("Enero");
            break;
            case 2: t4.setText("Febrero");
            break;
            case 3: t4.setText("Marzo");
            break;
            case 4: t4.setText("Abril");
            break;
            case 5: t4.setText("Mayo");
            break;
            case 6: t4.setText("Junio");
            break;
            case 7: t4.setText("Julio");
            break;
            case 8: t4.setText("Agosto");
            break;
            case 9: t4.setText("septiembre");
            break;
            case 10: t4.setText("Octubre");
            break;
            case 11: t4.setText("Noviembre");
            break;
            case 12: t4.setText("Diciembre");
            break;
        }
        
        diaP = "";
        mesP = "";
        dia = 0;
        mes = 0;
    }
    public void actionPerformed(ActionEvent ae){
        repaint();
    }
}
Y así fue lo que me quedo pero cuando ingreso un numero mayor que 7 en el día me sale error y creo que hay que realizar como una condición para que me salga dependiendo del mes ya que todos los meses no tienen los mismos numero de días... Y gracias por la ayuda de verdad me sirvió de mucho....
  #7 (permalink)  
Antiguo 21/02/2012, 13:33
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
De acuerdo Respuesta: Como puedo resolver un problema con la condicion Switch

Cita:
Iniciado por alexg88 Ver Mensaje
Mucho más sencillo es tener dos arrays donde guardas las cadenas de los meses y de los días.

Código Java:
Ver original
  1. String[] meses = {"Enero","Febrero", "Marzo", ...}
  2. String[] dias = {"Lunes","Martes", ...}
  3. String diaTexto = null;
  4. String mesTexto = null;
  5. int dia = -1;
  6. int mes = -1;
  7.  
  8. try{
  9.  dia = Integer.parseInt(txtDia.getText());
  10. }catch (FormatNumberException e){}
  11.  
  12. try{
  13.  mes = Integer.parseInt(txtMes.getText());
  14. }catch (FormatNumberException e){}
  15.  
  16. if (dia > 0 and dia < 8)
  17.  diaTexto = dias[dia];
  18.  
  19. if (mes> 0  and mes < 13)
  20.  mesTexto = meses[mes];

Saludos y espero que te sirva
Si también ese podría ser otro modo mas rápido, como utilizar el Swing.... muchas gracias a todos de verdad es de mucha información...
  #8 (permalink)  
Antiguo 14/03/2012, 09:00
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: Como puedo resolver un problema con la condicion Switch

Gracias por la ayuda...

Solucionado...

Etiquetas: resolver, switch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:23.