Java - como introducir texto en consola durante la ejecucion de un programa.

 
Vista:

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 24/11/2018 00:32:38
Hola muy buenas. Me presento con una duda:
Me llamo Fede y estoy estudiando un curso de java; a la hora de hacer un ejercicio que nos han mandado me he encontrado con un problema a ver si podrian resolverlo.
Me gustaria poder introducir un texto en la consola para que llamase a una variable y esta imprimiera un valor en consola, un valor previamente declarado.

int barramana=5;

Scanner entrada=new Scanner(System.in);

String mana=entrada.nextLine();

if(entrada.hasNextLine()) {

System.out.println(barramana);

De momento esto es lo unico que he conseguido, pero no sirve porque "detiene" el programa para pedir que introduzcas por consola lo que sea.
Gracias y un saludo!
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Kabuto (1381 intervenciones) el 24/11/2018 00:41:54
A ver, técnicamente no puedes "llamar" a una variable desde la consola, porque se supone que un usuario no sabe como se llaman las variables escogidas por el programador, ni las variables están para que el usuario acceda a ellas, ni nada por el estilo.

Así que realmente no se que utilidad tiene lo que quieres conseguir, ni tengo claro qué quieres conseguir.

Si tu idea es que, al introducir el nombre de la variable, salga su contenido, puede hacer esto:

1
2
3
4
5
6
int barramana=5;
Scanner entrada=new Scanner(System.in);
String mana=entrada.nextLine();
 
if(mana.equals("barramana"))
    System.out.println(barramana);

Ese código lo que hace es que si el usuario teclea barramana por consola, saldrá el valor de la varaible en pantalla.
Si teclea cualquier otra cosa, no saldrá nada.
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Tom (1831 intervenciones) el 24/11/2018 09:35:57
Lanza un hilo de ejecución que lo que haga sea leer del teclado e imprimir esa variable.
O usa el debuger
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 24/11/2018 10:10:56
No se ni como lanzar ese hilo de ejecucion ni como usar el debuger. =(
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 24/11/2018 10:08:48
Hola. Muchas gracias por la respuesta. te comento un poco de que va el ejercicio:

Es una especie de juego de cartas a medio hacer en el que tu robas una carta que tiene unos puntos de vida, ataque y coste de mana generados al azar y decides si jugar esa carta o descartarla para recibir 2 manas y otra carta.
Si juegas la carta puedes jugarla en 3 modos que hacen una cosa diferente a la carta cada modo.

Bien yo eso lo tengo hecho ya, y lo que hago es que voy preguntando al usuario con JOptionPane.showInputDialog que quiere hacer y le voy dando informacion por la consola de lo que sucede. pero a veces no sabes el mana que tienes y para que no sea tanto spam y decirle el mana que tiene el usuario despues de cada accion, prefiero que el lo pida poniendo mana en consola. Gracias
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Tom (1831 intervenciones) el 24/11/2018 10:27:33
Y ¿ por qué no indicas el mana que tiene el jugador en el mismo JOptionPane ? o ¿ por qué no lo indicas en alguno de los mensajes que ya sacas por consola ? o ¿ por qué no haces un UI fijo que muestre en algún sitio esa (y cualquier otra) información ?
Si no sabes lo que es un hilo de ejecución, sí sabes lo que deberías hacer :)
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 24/11/2018 11:30:32
Pues te comento:
Antes lo enseñaba en los mensajes que sacaba por consola pero eso hacia bastante spam. en los JOptionPane no casa la verdad y lo de la UI no tengo ni idea de lo que es. estoy un poco verde en java. Te importaria explicarme eso de la UI o pasarme algun link con informacion? gracias!
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Tom (1831 intervenciones) el 24/11/2018 12:29:07
Pues nada, como quieras.
UI es "User Interface" y GUI es "Graphical User Interface", usé UI por abreviar. Tú ya tienes un GUI, de hecho muestras un JOptionPane. Amplíalo.
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Kabuto (1381 intervenciones) el 24/11/2018 23:44:39
Vale, ya entiendo lo que dices.
Sin embargo, lo que quieres hacer supone el problema que tu mencionabas:
Para que el usuario pueda introducir algo en consola, estás obligado a utilizar el Scanner.nextLine() o similar.
Y esto, inevitablemente, paraliza todo el programa por completo hasta que el usuario se decida a introducir algo.

Creo que no hay forma alguna de dejar la consola "en espera" por si el usuario quiere introducir algo, mientras la otra parte del programa va ejecutando el juego de cartas.
Tal vez usando Threads (hilos de ejecución por separado)... pero siento no poder confirmarte nada en este aspecto, esto ya escapa a mis escasos conocimientos.

En cualquier caso creo que te será más fácil intentar sacarle más partido al JOptionPane que estás usando.
Es cierto que los JOptionPane son muy limitados, ya que no están pensados para ofrecer una información demasiado completa. Aunque se me ocurre que puedes usar el titulo de la ventana del JOptionPane para mostrar el nivel de mana en todo momento.

Estás usando un showInputDialog, el cuál tiene varios constructores y uno de ellos puedes definir tú el título de la ventana pasandole un String con los datos que tu quieras.
Un constructor como este más o menos:

1
JOptionPane.showInputDialog(null, "Mensaje de juego...", "Nivel de mana: " + barramana, JOptionPane.QUESTION_MESSAGE.)


Claro que lo ideal sería meterle mano a la clase Swing y mostrar una interfaz más avanzada, pero bueno, si de momento has de usar JOptionPane, tendrás que buscar la forma de exprimir al máximo los únicos parámetros donde puedes meter datos: el título y el cuerpo del mensaje
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 25/11/2018 09:37:48
Muchas gracias por contestar! si tendré que usar JOptionPane. Un par de preguntas:
el null que hace? y el Swing? como se usa? xD
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Kabuto (1381 intervenciones) el 25/11/2018 23:46:22
En ese constructor que puse del JOptionPane, el primer parámetro que hay que indicarle es el nombre de la ventana o componente gráfico al que debería asociarse la ventana emergente que va a producir el JOptionPane.

En el caso de programas basados en consola, como hay ningúna ventana ni componente gráfico al que poder asociarse, entonces le pasamos null para este primer parámetro.
Incluso en el caso de que hubiera ventanas a las que poder asociarse, es muy habitual indicarle null de todos modos porque no solemos necesitar que se asocie a ninguna componente gráfico específico.


Las librerias Swing son el conjunto de clases que permite crear programas con interfaz gráfica (GUI), es decir, que el programa presente una ventana, con sus botones para hacer click con el raton, sus campos de texto, sus menus de herramientas, sus barras deslizadoras, botones de radio, checkbox, deslizadores, barras de progreso, etc....

Esta librería no es compleja de aprender, pero sí muy extensa y por otra parte exige algo de labor poner ventanas en marcha y funcionales.
Por eso cuando se aprende programación, es algo que no se enseña hasta mucho después.
Lo importante al principio es aprender la lógica de la programación, aunque sea mediante la fea y aburrida consola de texto.

Luego, ya habrá tiempo de aprender cómo hacer programas más bonitos e interactivos
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

como introducir texto en consola durante la ejecucion de un programa.

Publicado por Fede (6 intervenciones) el 26/11/2018 18:53:27
Vale capto la idea. Pues muchas gracias por las respuestas de verdad! Un saludo y hasta pronto.
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