|
Indice | Temas Recientes | Quién Está en LÃnea | Lista de Usuarios | Mi Perfil | Búsqueda | Ayuda |
![]() |
mvnForum » Listar todos los foros » Foro: Curso PLJ » Tema: Sesion 10 Problemas con el menú |
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 |
|
![]() Extranjero
|
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??? |
||
|
![]() Extranjero
|
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. |
||
|
![]() Miembro
|
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à ![]() |
||
|
[Versión imprimible] [Publicar nuevo tema] |