mvnForum Homepage Bienvenido domingo  |  Terminar sesión   
  Búsqueda  
  Indice |  Temas Recientes |  Quién Está en Línea |  Lista de Usuarios |  Mi Perfil |  Búsqueda |  Ayuda


Ir a »
Total de mensajes en este tema: 3 [Eliminar este Tema] [Mover este Tema]
[Ańadir a Mis Favoritos] [Ańadir un aviso a este tema] [Publicar nuevo tema]
Autor
Tema Anterior Este tema ha sido visto 42 veces y tiene 2 respuestas Tema Siguiente
Femenino vcc1
Extranjero



Ingresó: Jul 1, 2004
Mensajes: 11
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Sesion 10 Problemas con el menú Responder a este mensaje
Responder citando
[Eliminar este Tema]

Estoy haciendo la sesion 10, y en la clase AplicaGeom declaro un método para recoger la opcion
seleccionada en el menu, el método es el siguiente:

public int menu()
{
int opcion = -1;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


while ((opcion < 0) || (opcion > 4))
{
System.out.println("MENU DE OPCIONES");
System.out.println("----------------");
System.out.println();
System.out.println("1.- Crear una nueva figura");
System.out.println("2.- Borrar una figura existente");
System.out.println("3.- Guardar datos en fichero");
System.out.println("0.- Salir");
System.out.print("Elige opcion --> ");
try
{
opcion = br.read();
System.out.println();
}
catch(IOException e){/* Excepcion de lectura */}

}
return opcion;
}

Luego este método le devuelve la opcion al prog. principal para realizar la opcion
seleccionada, bueno pues el problema es que cuando pongo como condición del bucle
una condición compuesta (como la anterior) no me hace el filtrado correctamente,
es decir, si meto un dos me vuelve a sacar el menú, mi pregunta es: ¿es que no tengo
que capturar la tecla con un BufferedReader, si es así como capturo la opcion???
[Jul 16, 2004 6:41:42 PM] Print Post Reportar mensaje ofensivo  Ir al inicio 
Femenino vcc1
Extranjero



Ingresó: Jul 1, 2004
Mensajes: 11
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Re: Sesion 10 Problemas con el menú Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Creo que ya lo tengo, ahora en vez de leer un caracter sólo lo que hago es leer una línea entera y luego esta línea la paso a intero con el metodo Integer.parseInt(br.readLine)

Y así ahora de esta forma me hace el filtrado de la entrada correctamente.

Chao compis.
[Jul 16, 2004 7:27:27 PM] Print Post Reportar mensaje ofensivo  Ir al inicio 
Masculino nacho
Miembro



Ingresó: Feb 1, 2004
Mensajes: 63
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Re: Sesion 10 Problemas con el menú Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Hola.

La solución que tú mismo das es la correcta: tomar toda la línea y convertirla a entero.

Pero, si sigues la arquitectura de aplicación que se explica en el enunciado de la sesión 10, no deberías declarar un "BufferedReader" dentro del método "menu". La aplicación ya tiene la clase "io.EntradaTeclado". Basta con que definas un campo de esa clase en AplicGeom, y lo utilices siempre que necesites recoger algo de teclado.

public class AplicGeom
{
...
EntradaTeclado et = new EntradaTeclado();
...
public int menu()
{
System.out.println("Menu de opciones");
System.out.println("...");
System.out.println("...");
...
String opcion = et.leeTeclado();
int numOpcion = Integer.parseInt(opcion);
...

Algo así smile
[Jul 17, 2004 1:32:06 AM] Print Post    iiborra@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
[Versión imprimible] [Publicar nuevo tema]