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 - kinos

#71
vale, ya he puesto lo del error. Es que lo he puesto para simplificar pero me dejado unas cuantas cosas. Estoy haciendo una aplicacion de escritorio con el netbeans, una de los proyectos que te viene por defecto cuando creas una nueva aplicacion. El caso es que quiero añadirle un splashScreen para que salga mientras se va cargando la aplicacion. Si cargo la ruta desde una url de internet pues sin problemas. Pero cuando quiero setearle la ruta para que la coja de sus recursos... nada
#72
Hola:  :-\

  Estoy intentando cargar una imagen del directorio de los recursos para que luego no haya problemas con rutas erroneas y demás. El problema es que no puedo ponerle la ruta con estos metodos que utilizo porque me salta un error que dice "non-static method..."

Código (java) [Seleccionar]

public class DesktopApplication extends SingleFrameApplication {

   @Override
   protected void startup() {
       show(new DesktopApplicationView(this));
   }

   @Override
   protected void configureWindow(java.awt.Window root) {
   }

   public static DesktopApplication getApplication() {
       return Application.getInstance(DesktopApplication4.class);
   }

   public static void main(String[] args) {
   
   URL url = getClass().getResource("imagen.jpg");
    //error: non-static method getClass() cannot be referenced from a static context
   this.getClass().getResource("imagen.jpg");
    //error: non-static variable this cannot be referenced from a static context

    System.out.println(Toolkit.getDefaultToolkit().getImage("splash.jpg"));
    //null

    launch(DesktopApplication.class, args);
   }
}


Lo que hago es intentar ver con system.out.println() las rutas de la imagen pero o son null, o no puedo ejecutar por lo de non-static... dependiendo de la linea que ponga.
#73
Basta que pregunte para dar con la solución:

- Los mensajes se pueden dirigir a un archivo, sólo hay que añadir al LOGGER un handler.

boolean append = true;
FileHandler fh = new FileHandler("TestLog.log", append);
fh.setFormatter(new SimpleFormatter());
LOGGER.addHandler(fh);

He hecho alguna modificación en el código que se expone en la web del link de dichos apuntes para hacer pruebas. Sólo tendrías que añadir al directorio del programa el archivo diccionario con palabras para que pueda cargarse (está en la web).

Código (java) [Seleccionar]

package milogger;

import java.io.*;
import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;

class Diccionario {

    private static final Logger LOGGER = Logger.getLogger("TestLog");
    private static final int MAX = 100;
    // diccionario de hasta MAX palabras
    // ordenadas alfabéticamente
    private String[] palabras = new String[MAX];
    private static final int primera = 0;
    private int ultima = -1;

    static {
        try {
            boolean append = true;
            FileHandler fh = new FileHandler("TestLog.log", append);
            //fh.setFormatter(new XMLFormatter());
            fh.setFormatter(new SimpleFormatter());
            LOGGER.addHandler(fh);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * Carga el diccionario leyendo palabras de un fichero.
     *
     * @param fichero A razón de una palabra por línea.
     */
    Diccionario(String fichero) {
        LOGGER.config("cargamos el diccionario con " + fichero);
        try {
            BufferedReader br = new BufferedReader(new FileReader(fichero));

            for (String linea = br.readLine(); linea != null; linea = br.readLine()) {
                if (ultima >= MAX - 1) {
                    continue;
                } // no caben más palabras
                palabras[++ultima] = linea;
            }
            LOGGER.config(ultima + 1 + " palabras");
        } catch (Exception e) {
            LOGGER.log(Level.SEVERE, "creacion: ", e);

            System.exit(1);
        }
    }

    private int busca(String p) {
        LOGGER.info("comienza la busqueda de " + p);
        int resultado = busca(p, primera, ultima);

        LOGGER.info("resultado de la busqueda: " + resultado);
        return resultado;
    }

    private int busca(String p, int a, int z) {
        LOGGER.fine("busca entre " + palabras[a] + " y " + palabras[z]);
        if (a <= z) {
            int m = (a + z) / 2;

            LOGGER.finer("probamos con " + palabras[m]);
            int donde = p.compareTo(palabras[m]);

            LOGGER.finer("donde= " + donde);
            if (donde == 0) {
                return m;
            }
            if (donde < 0) {
                return busca(p, a, m - 1);
            }
            if (donde > 0) {
                return busca(p, m + 1, z);
            }
        }
        LOGGER.warning("no encontrado");
        return -1;
    }

    /**
     * Programa principal.
     *
     * @param args diccionario palabra
     */
    public static void main(String[] args)
            throws Exception {
        //if (args.length != 2) {
        //     System.err.println("uso: java Diccionario diccionario palabra");
        //     System.exit(1);
        //}

        Diccionario diccionario = new Diccionario("diccionario");
        String palabra = "hipoglúcido";
        int posicion = diccionario.busca(palabra);
       
        System.out.println(palabra + ": " + posicion);
    }
}
#74
Hola:

Estoy aprendiendo sobre la clase Logger para incorporarla a mi código y tengo varias dudas.

¿Los mensajes se escriben solo en pantalla?
¿van a parar a algún archivo en la estructura de directorios de mi programa? (esta es mi intención para mas tarde poder depurarlo si surgen errores)

Estoy siguiendo los pasos que se indican en estos apuntes:

http://www.lab.dit.upm.es/~lprg/material/apuntes/log/log.htm

Gracias.
#75
Si son muchos elementos puedes utilizar la clase hashset o la hashtable porque para acceder a ellos es mucho más rápido.
#76
Java / Re: Como tratar videos con java
31 Agosto 2009, 19:27 PM
Hola,

   Tienes esta api para el tratamiento multimedia http://java.sun.com/javase/technologies/desktop/media/jmf/

   Un ejemplo de una aplicación de un reproductor http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/jmstudio/jmstudio.html

   La documentación creo que será esta http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/apidocs/javax/media/package-summary.html

   Un ejemplo concreto no estaría mal  :)
#77
A ver a si...


public long getTime()
    Returns:
        the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this date.


3 min * 60 seg = 180 seg -> 180 * 1000 = 180000 miliseg

Código (java) [Seleccionar]

if ( (fechaFin.getTime() - fechaInicio.getTime()) >= 180000){
   System.out.println("Han transcurrido 3 minutos u mas :)");
}
#78
Java / Re: simular partido tenis
26 Agosto 2009, 00:16 AM
Mira a ver si se te queda algún proceso durmiendo y no despierta.

A mi me ha pasao alguna vez que se me quedaba esperando en un objeto, una cola y si no lo despiertas haciendo una llamada a ese objeto... nada de nada.

Código (java) [Seleccionar]

//esto en la cola
public synchronized void terminarProcesosEnEspera() {
        salir = false;
        notifyAll();
    }


La variable salir la utilizo porque al sacar de la cola y ser vacia(por eso espera) no me permite sacar en el metodo dequeue.

Escribe instrucciones System.out.println() a tutiplén a ver donde se te queda dormido o depuralo.
#79
Java / Re: Como crear un Troyano en Java
25 Agosto 2009, 17:59 PM
Muy interesante tu post   :o ;-)
#80
Java / Re: control de navegacion?
22 Agosto 2009, 22:52 PM
Busca en google algo de redireccionamiento, quizas te sirva.

Lo unico que se me ocurre es que pases parametros como en php, en jsp supongo que será parecido mipagina.php?param1=val1¶m2=val2

En una variable guardas el origen y en otra el destino.