elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Problema al listar directorio con File.list() en: 28 Enero 2013, 20:02 pm
Hola amigos foreros, os traigo un problema que no acabo de encauzar, me ocurre que no soy capaz de solucionar :(
Cuando intento listar el directorio Archivos de programa, no hay manera... me devuelve un null pointer exception.
El código es este:
Código
  1. static void cargarDirectorio(String directorioActual){
  2.        vaciarTabla();
  3.        File dir = new File(directorioActual);
  4.  
  5.        String[] ficheros = dir.list();
  6.        //System.out.println(dir.list().length);
  7.        if(dir.canRead() && dir != null && ficheros.length != 0){
  8.        for(int i = 0; i < ficheros.length ; i++){
  9.            tablaFicheros.setValueAt(ficheros[i], i, 0);
  10.            tablaFicheros.setValueAt(i, i,1);
  11.        }
  12.        }else{
  13.            System.out.println("No se puede leer el directorio.");
  14.        }
  15.  
  16.    }
  17.    static void vaciarTabla(){
  18.        for(int i = 0; i < 61; i++){
  19.            tablaFicheros.setValueAt("", i, 0);
  20.            tablaFicheros.setValueAt("", i, 1);
  21.        }
  22.    }
  23.  

Y para probarlo hago:
Código
  1. cargarDirectorio("C:\\Archivos de programa");

Cabe mencionar que me ocurre lo mismo con Documents and settings.
He comprobado que tenga permisos para listar y nada :O

Gracias por vuestro tiempo :)
2  Programación / Java / Problema con Threads al pasar un dato mediante argumentos en: 23 Enero 2013, 13:29 pm
Hola amigos, me presento soy AlterMundis y quiero que me ayudéis a solucionar un problema.
Tengo el siguiente código:

Código
  1. class controladorRaton implements Runnable {
  2.        ServerSocket raton;
  3.        Socket ratonConector;
  4.        Point nuevoPunto;
  5.        DataOutputStream salidaDatos;
  6.  
  7.        public void run() {
  8.            try {
  9.                this.inicializar();
  10.                while(true){
  11.  
  12.                        salidaDatos.write(nuevoPunto.x);
  13.                        salidaDatos.write(nuevoPunto.y);
  14.  
  15.                }
  16.            } catch (IOException ex) {
  17.                        System.out.println("Problema al enviar los datos.");
  18.            }
  19.        }
  20.  
  21.        void inicializar() throws IOException{
  22.           raton = new ServerSocket(668);
  23.           ratonConector = raton.accept();
  24.           salidaDatos = new DataOutputStream(ratonConector.getOutputStream());
  25.        }
  26.        void obtenerDatosRaton(int x, int y){
  27.            nuevoPunto.setLocation(x, y);
  28.        }
  29.    }  
  30. }
  31.  

Y lo que hago es pasar las coordenadas del ratón usando el siguiente código, que esta definido en una clase aparte, otro thread (implements Runnable):

Código
  1. lblImg.addMouseMotionListener(new MouseMotionListener() {
  2.                    @Override
  3.                    public void mouseMoved(MouseEvent evt) {
  4.                        controladorHardware.obtenerDatosRaton(evt.getX(), evt.getY());
  5.                    }
  6.                    @Override
  7.                    public void mouseDragged(MouseEvent evt) {
  8.  
  9.                    }
  10.                    });
  11.  
Los threads, han sido llamados así, usando el siguiente procedimiento (uno que se encarga de enviar imagenes del escritorio al usuario y el otro que transmite clicks para poder hacer un escritorio remoto:

Código
  1. if (t == null){
  2.                        t = new Thread(this, "ServidorImagenes");
  3.                        hiloRaton = new Thread(controladorHardware, "ServidorHardware");
  4.                        t.start();
  5.                        hiloRaton.start();
  6.                }
  7.  

Es decir, lo que hace es arrancar el thread de un jframe que recoge los datos del ratón y se los pasa al otro thread que es el encargado de hacer la transferencia al servidor remoto.

Me da este error cada vez que se ejecuta la linea
Código
  1.   controladorHardware.obtenerDatosRaton(evt.getX(), evt.getY());
es decir, cada vez que muevo el ratón por el componente que esta a la escucha de las coordenadas. Se por seguro que funciona bien el evento pues por pantalla puedo mostrar las coordenadas en las que se encuentra mi ratón sobre el componente, pero en el momento de pasarlo al otro thread, dice esto:

Código:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

En la linea que os he explicado.

Espero que podáis ayudarme pues estoy desesperado y no se que diablos pasa!
Gracias de antemano!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines