Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Nephewless

#1
Java / Re: Recursividad
12 Octubre 2012, 12:09 PM
jeje! Pues da gracias, a mi me dieron recursividad en el primer cuatrimestre! xD

A ver, que no te asuste la recursividad, pues aunque parezca muy difícil y complicada, al final la haces sin darte ni cuenta. Te sugiero que cojas un par de ejemplos, más sencillos y más complicados y los analices hasta que los comprendas bien, y luego intentes hacer modificaciones o programas recursivos parecidos a ver si te salen.

El éxito de la recursividad es entender que hay una (o más) condiciones que te hacen seguir y otra o otras que te hacen salir de la recursividad.

No se si habrás dado ya ensamblador o gestión de memoria y tal, pero si lo has dado y has visto como se construye en memoria una llamada igual te resultará más fácil entenderlo..
#2
yo hice algo similar.

En mi caso creé una clase casilla y otra clase tablero. El tablero era un array de casillas.

También tenía la clase jugador. Cada jugador guardaba, entre otros valores, su posición. En tonces tan solo tenía que imprimir el jugador en la casilla del tablero que le tocaba...

Es decir, digamos que en tablero tengo el array: Casillas[] tablero = new Casillas[N];

Pues lanzo el dado con un random, y le sumo al jugador.posición el valor, y en tonces el jugador estará en tablero[jguador.posición+dado].

No se si me he explicado demasiado bien... xD
#3
Java / Re: Diagrama de clases
11 Octubre 2012, 17:28 PM
pues con solo los .class no conozco ninguno... y tampoco te se decir si sería posible.. se que netbeans tenía una extensión que te hacía directamente el diagrama... pero con todo el proyecto... siento no ser de más ayuda..
#4
Cuando creo el jar ejecutable me da tres opciones:
- Extract required libraries into generated JAR
- Package required librarires into generated JAR
- Copy required libraries into a sub-folder next to the generated JAR

No se supone que la segunda te empaqueta las librerías necesarias (entiendo que todas...) dentro del jar?
A que te refieres con que deben estar correctamenet configuradas?

Alguna idea de como solventar el problema sin tener que "obligar" a los usuarios instalar todos los programas y recompilarlo?  :-\

Muchas gracias!
#5
Java / problema con librerías externas y jar
8 Octubre 2012, 18:29 PM
A ver si me podéis echar una mano porque voy algo perdido :(

Estoy en medio de un proyecto en el que una funcionalidad es capturar imagenes de las webcams instaladas en el PC en concreto.

Para poder capturar dichas imágenes he usado librerías javacv, y he tenido que instalar el OpenCV-2.4.2 y vcredist_x64. (no se muy bien porque, pero era la única manera de conseguir compilarlo y tal...)

Bueno, la cosa es que uso eclipse, y para poder compilar tengo que añadir al proyecto la librería javacv como ya he dicho anteriormente. Una vez hecho todo esto, ejecuto el programa y corre perfectamente!

El problema viene cuando construyo el proyecto, empaquetandolo todo en un .jar, y llevo ese .jar a otro pc... No funciona... Lo he probado en linux, lo he probado en windows, lo he probado en mac... incluso lo he probado en otro pc con todo lo anteriormente dicho instalado, y nada. O compilo (y para compilar tengo que instalar todo eso) y ejecuto, o si lo llevo a otra máquina, nada..

El error que me da es el siguiente:
CitarException in thread "main" java.lang.NoClassDefFoundError: hacerfotos/jar
Caused by: java.lang.ClassNotFoundException: hacerfotos.jar
   at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: hacerfotos.jar. Program will exit.

No se por donde tirar... Alguna sugerencia?

Muchas gracias de antemano!

Un saludo!

P.D.: Os dejo también los códigos que uso para capturar la cam y tal..

import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import com.googlecode.javacv.cpp.opencv_highgui;
import com.googlecode.javacv.cpp.opencv_highgui.CvCapture;

public class Webcam {

    public static void main(String[] args) throws Exception {
        CvCapture capture = opencv_highgui.cvCreateCameraCapture(0);

        opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_HEIGHT, 720);
        opencv_highgui.cvSetCaptureProperty(capture, opencv_highgui.CV_CAP_PROP_FRAME_WIDTH, 1280);

        IplImage grabbedImage = opencv_highgui.cvQueryFrame(capture);

        CanvasFrame frame = new CanvasFrame("Webcam");

        while (frame.isVisible() && (grabbedImage = opencv_highgui.cvQueryFrame(capture)) != null) {
            frame.showImage(grabbedImage);
        }

        frame.dispose();
        opencv_highgui.cvReleaseCapture(capture);
    }

}


private static void captureFrame() {
// 0-default camera, 1 - next...so on
final OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
try {
grabber.start();
IplImage img = grabber.grab();

Date date = new Date();
String nombre = String.valueOf(date.getTime());
if (img != null) {
cvSaveImage(nombre+".jpg", img);
}
} catch (Exception e) {
e.printStackTrace();
}
}
#6
Java / [Android] Modificar ImageView desde un thread
29 Septiembre 2012, 18:16 PM
Buenas! Cuanto tiempo sin entrar por aquí! jeje!

A ver, os cuento, a ver si me podéis echar un cable, que ya llevo dos días con este problemilla y no consigo solucionarlo.

El caso es que para una práctica de la uni tengo que desarollar un juego de la oca para android. Esta todo hecho, pero me queda un problema por resolver.

Utilitzo una clase que extiende de AnimationDrawable para simular el lanzamiento de los dados y controlo cuando la simulación se termina.

Código (java) [Seleccionar]
    public abstract class CustomAnimationDrawableNew extends AnimationDrawable {

    /** Handles the animation callback. */
    Handler mAnimationHandler;

    public CustomAnimationDrawableNew(AnimationDrawable aniDrawable) {
        /* Add each frame to our animation drawable */
        for (int i = 0; i < aniDrawable.getNumberOfFrames(); i++) {
            this.addFrame(aniDrawable.getFrame(i), aniDrawable.getDuration(i));
        }
    }

    @Override
    public void start() {
        super.start();
        /*
         * Call super.start() to call the base class start animation method.
         * Then add a handler to call onAnimationFinish() when the total
         * duration for the animation has passed
         */
        mAnimationHandler = new Handler();
        mAnimationHandler.postDelayed(new Runnable() {

            public void run() {
                onAnimationFinish();
            }
        }, getTotalDuration());

    }

    /**
    * Gets the total duration of all frames.
    *
    * @return The total duration.
    */
    public int getTotalDuration() {

        int iDuration = 0;

        for (int i = 0; i < this.getNumberOfFrames(); i++) {
            iDuration += this.getDuration(i);
        }

        return iDuration;
    }

    /**
    * Called when the animation finishes.
    */
    abstract void onAnimationFinish();
    }


Bien, en el hilo principal, hago la llamada a esta clase:

Código (java) [Seleccionar]

CustomAnimationDrawableNew cad = new CustomAnimationDrawableNew((AnimationDrawable) getResources().getDrawable(R.drawable.frame_animation)){
. . .
void onAnimationFinish(){
...
}
}
iv.setBackgroundDrawable(cad); //inserta la animacio
cad.start(); // inicialitza la animacio


y dentro del onAnimationFinish() hago un random del dado, printo en el mismo view donde se aplica la animación la imagen del dado resultante (es decir, si he sacado un uno, la imagen de un dado en la cara del uno xD ), luego calculo los movimientos, los pinto, y lanza el siguiente jugador que lo hace mediante la pulsación de un botón, o bien, el siguiente jugador puede ser automático, y lanza directamente.

El problema es que si se da el último caso, que el jugador es automático, al terminar la animación, empieza la animación del siguiente jugador directamente, sin poder ver que numero ha salido, y la ficha también se mueve a la vez que empieza la animación, y queda fatal.

Me gustaría poder mostrar la animación, inmediatamente cambiar la imagen y poner la del dado correspondiente, hacer una espera (medio segundo por ejemplo), mover la ficha, hacer otra espera (1 segundo) y que lanzara el siguiente jugador. El problema es que si pongo un wait se me queda todo parado, sin haberse cargado la imagen, ni haberse movido la ficha.... y estoy con el mismo problema, ya que al reactivarse estamos con las mismas.

Creo que la solución sería hacer el movimiento de fichas y el cambio de imagen del dado en threads, para así solo parar el thread principal, pero no me deja cambiar las imagenes ya que solo puedo cambiar imagenes del thread donde se han creado... y ahí estoy pillado... :(

Algun consejo o ayudilla?

Lo siento por el tocho... No he sabido resumir más o expliarme mejor...

Si necesitais más información, no dudeis en preguntar!

Muchas gracias de antemano!

Un saludete!
#7
Java / Lista de ficheros
2 Abril 2009, 02:54 AM
Hola!

Bueno, mis dos últimos posts no han tenido mucho éxito, pero lo he podido solucionar, a ver si en este alguien me puede ayudar...  :-\

La idea es hacer en una ventana donde haya una JComboBox donde me ponga todos los ficheros que hay guardados en ".\carpeta". Los ficheros son todos ".txt".

La cosa en sí es tener algo desde donde poder seleccionar el archivo y crear una string de su nombre para luego utilizar el archivo. Es decir, si lo veis más fácil con otro elemento que no sea el JComboBox, pues acepto sugerencias. He probado con el JComboBox porque me aprecia el mas indicado y fácil de hacer.

Gracias de antemano!
Un saludo!
#8
Java / fichero llamado por fecha
1 Abril 2009, 16:50 PM
Hola de nuevo.

Tengo otra duda. Necesito crear desde un programa en Java un fichero que se llame por el día,mes y año del día que se ejecute. Es decir, yo ahora ejecuto el programa y se tiene que crear un fichero llamado: "010409.txt", como puedo hacerlo?

Gracias de antemano!
Un saludo!!

P.D.: Crear el fichero sé, lo que no se es como ponerle ese nombre.
#9
Arreglado el problema de las ventanas, he pasado la ventana1 como variable a ventana2 y la he cerrado desde ventana2.
#10
Hola! que tal todo?

Soy un poco nuevo en Java y estoy haciendo unos cuantos programas chorras para practicar y resolver dudas que aunque parezcan tontas, puede ser útil saberlas resolver para el día de mañana  ;D

A ver, la duda que tengo es: tengo una Ventana1 desde la cual, al apretar un botón se abre Ventana2. Entonces hago la función del botón y pongo:
new Ventana2.setVisible(true);

Asta aquí todo bien, la cosa es... ahora como hago que Ventana1 "desparezca"?

La otra duda es, como se maneja el "password field"? es decir, como pido lo que ha puesto el usuario, o como puedo compararlo con la String que yo quiero poner como Password?

Muchas gracias de antelación!
Un saludo!!