Author Topic: Crear un Random en Netbeans  (Read 9313 times)

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Crear un Random en Netbeans
« on: Noviembre 21, 2010, 01:43:34 pm »
Hola:
No se si esta sección es la mas adecuada para mi pregunta, pero esque no sabia donde hacerla:

Estoy empezando a usar Netbeans para crear una aplicación en Java, y necesito crear un numero aleatorio entre 1 y 6. Para ello he utilizado el método nextInt(int n) de la clase random, pero Netbeans me dice que ese metodo no existe y no  puede ser que no exista porque ya lo habia utilizado antes en otros entornos como eclipse por ejemplo.

He intentado tambien hacerlo con la opcion de Math.random pero tampoco me reconoce el metodo random en Math y por eso creo que el error es del programa.

Estoy intentando actualizarlo a ver si el problema es por las librerias, pero creo que no se bien como hacerlo porque sigo igual.

Muchas gracias de antemano por la ayuda

Un saludo

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 4873
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Crear un Random en Netbeans
« Reply #1 on: Noviembre 21, 2010, 07:49:50 pm »
Hola:

El ide (eclipse/netbeans) en principio no tiene nada que ver, los métodos que existen o no los decide java y no la herramienta que uses para desarrollar.

Los métodos posibles de la clase Math los tienes en http://download.oracle.com/javase/6/docs/api/java/lang/Math.html y los de la clase Random aquí http://download.oracle.com/javase/6/docs/api/java/util/Random.html

Si no te compila, no estaría de más que pusieras el error que da para poder ayudarte mejor.

Se bueno.

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #2 on: Noviembre 21, 2010, 08:01:01 pm »
Hola:

Gracias por tu respuesta.
ya conozco los metodos de ambas clases, pero el problema es que netbeans solo me reconoce unos pocos , en concreto el nextInt(int n) por ejemplo no me deja usarlo (exactamente me dice:
nextInt() in java.util.Random cannot be applied to (int)
 en cambio nextInt() así si puedo usarlo.

y con la clase Math solo me reconoce los metodos abs, max y min y el resto si intento usarlos me dice que no puede encontrar el simbolo.

Gracias otra vez

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 4873
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Crear un Random en Netbeans
« Reply #3 on: Noviembre 21, 2010, 09:39:59 pm »
pon exactamente el código de las llamadas que intentas a ver....

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #4 on: Noviembre 21, 2010, 10:39:50 pm »
int tipo = rand.nextInt(7);
este codigo no compila (nextInt() in java.util.Random cannot be applied to (int)) , pero  int tipo = rand.nextInt(); si compila perfectamente, pero yo quiero obtener numeros pequeños entre 0 y 6 y con el segundo se obtienen numero demasiado grandes.

El problema no es el codigo, creo que es problema de la version de netbeans porque con eclipse no me daba ningun problema

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 4873
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Crear un Random en Netbeans
« Reply #5 on: Noviembre 22, 2010, 07:36:40 am »
según la api que te pasé, ese método está ahí desde la versión de java 1.2 .... Es muy raro que estés usando una versión tan antigua.

si estás en windows, abre una ventana de ms-dos y pon

java -version

a ver qué te sale. Mira también en la configuración de netbeans que no esté usando una versión de java tan vieja o haciendo compatible el código con esa versión.

se bueno.

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #6 on: Noviembre 22, 2010, 01:54:39 pm »
estoy en la version 1.6.0_16 de java y es la misma que esta usando netbeans asique ya no se que puede ser

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #7 on: Noviembre 23, 2010, 11:44:48 am »
La aplicacion que estoy haciendo es en J2ME y me ha comentado un compañero que cree que J2ME no utiliza todos los métodos de las librerias de java. ¿Es posible que ese sea mi problema? y si es así , ¿como se hace en J2ME para obtener un valor aleatorio comprendido entre dos números?

Gracias

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 4873
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Crear un Random en Netbeans
« Reply #8 on: Noviembre 23, 2010, 01:51:15 pm »
Pues es posible, la API de jme está reducida respecto a la de JSE.

si quieres el valor entre 0 y N, puedes usar el módulo

Random.nextInt() % (N+1)

Si lo quieres entre N y M, pues hazlo entre 0 y (M-N) y luego le sumas N.

(Random.nextInt() % (M-N+1)) + N

Se bueno.


dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #9 on: Noviembre 23, 2010, 11:02:46 pm »
Muchas gracias, asi si que me vale, lo único que haciendo eso me no se porque me ha salido un negativo. No lo entiendo porque el MOD es el resto de la division...
He hecho: Random.nextInt()% 7 para obtenerlo entre 0 y 6 y he puesto un mensaje para ver que valor cogia y me salia un -2

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #10 on: Noviembre 23, 2010, 11:13:44 pm »
Hola otra vez:

Lo he solucionado poniendo que si el valor obtenido es < 0 que le sume N y así me aseguro de que siempre sea positivo, pero no entiendo porque sale negativo....

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 4873
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Crear un Random en Netbeans
« Reply #11 on: Noviembre 24, 2010, 09:23:39 am »
No me había fijado, pero nextInt() debe poder devolver negativos, por eso el resto sale negativo. Si lo que has hecho para arreglarlo funciona (debería) pues listo. También puedes usar, si está disponible en JME, el método Math.abs() para obtener el valor absoluto.

dkanova

  • Newbie
  • *
  • Posts: 25
  • Karma: 0
    • View Profile
Re: Crear un Random en Netbeans
« Reply #12 on: Noviembre 24, 2010, 01:06:03 pm »
Muchisimas gracias por la ayuda, con lo que prové ya funciona, pero voy a probar con lo que me has comentado que parece "más elegante"

Un saludo