get me devuelve null no se porque

Iniciado por mapers, 27 Julio 2011, 12:24 PM

0 Miembros y 1 Visitante están viendo este tema.

mapers

Buenas señores del foro necesito de su ayuda porque me devuelve null mi get no entiendo si todo esta en su lugar a ver si ustedes tiene ojo mas clinico :D
Código (java) [Seleccionar]

package OurGame;

import Pantalla_Principal.EJemplos___;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;



public class __Camarada__ {

   private Cliente.Cliente C;
   private Servidor___._Servidor_ S;

   private Pantalla_Principal.EJemplos___ PPE;

   //.....................................//
   int x, dx, y, nx, nx2, left, dy;
   Image still, jump, reverse;
   int ammo = 100;
   ImageIcon s = new ImageIcon("Anime\\still.png");
   ImageIcon j = new ImageIcon("Anime\\jumpv.png");
   ImageIcon l = new ImageIcon("Anime\\leftvn.png");
   static ArrayList bullets;
   public String Derecha, Izquierda, Arriba, Fuego,
           Avanza_Derecha, Avanza_Izquierda,
           Avanza_Arriba;

   //**************************************************************//
   public String getArriba() {
       return Arriba;
   }

   public void setArriba(String Arriba) {
       this.Arriba = Arriba;
   }

   public String getAvanza_Arriba() {
       return Avanza_Arriba;
   }

   public void setAvanza_Arriba(String Avanza_Arriba) {
       this.Avanza_Arriba = Avanza_Arriba;
   }

   public String getAvanza_Derecha() {
       return Avanza_Derecha;
   }

   public void setAvanza_Derecha(String Avanza_Derecha) {
       this.Avanza_Derecha = Avanza_Derecha;
   }

   public String getAvanza_Izquierda() {
       return Avanza_Izquierda;
   }

   public void setAvanza_Izquierda(String Avanza_Izquierda) {
       this.Avanza_Izquierda = Avanza_Izquierda;
   }

   public String getDerecha() {
       return Derecha;
   }

   public void setDerecha(String Derecha) {
       this.Derecha = Derecha;
   }

   public String getFuego() {
       return Fuego;
   }

   public void setFuego(String Fuego) {
       this.Fuego = Fuego;
   }

   public String getIzquierda() {
       return Izquierda;
   }

   public void setIzquierda(String Izquierda) {
       this.Izquierda = Izquierda;
   }

//**************************************************************//
   public __Camarada__() {
       x = 75;
       left = 150;
       nx = 0;
       nx2 = 685;
       y = 172;
       still = s.getImage();
       bullets = new ArrayList();

   }
//************************************************************//

   public Rectangle getBounds() {
       return new Rectangle(left, y, 63, 154);
   }
//************************************************************//

   public static ArrayList getBullets() {
       return bullets;
   }
//************************************************************//

   public void fire() {
       if (ammo > 0) {
           ammo--;
           //The v is from the board class, which corresponds to the character's
           //position when it is jumping, resulting in the bullet being formed
           //at a higher position when the character is at the peak of its jump
           ___Bala z = new ___Bala((left + 60), (__Animar___.v + 154 / 2));
           bullets.add(z);
       }
   }
//************************************************************//

   public void move() {
       if (dx != -1) {
           if (left + dx <= 150) {
               left += dx;
           } else {
               x = x + dx;

               nx2 = nx2 + dx;
               nx = nx + dx;
           }
       } else {
           if (left + dx > 0) {
               left = left + dx;
           }
       }
   }
//************************************************************//

   public int getX() {
       return x;
   }

   public int getLeft() {
       return left;
   }

   public int getnX() {
       return nx;
   }

   public int getnX2() {
       return nx2;
   }

   public int getdx() {
       return dx;
   }

   public Image getImage() {
       return still;
   }

//************************************************************//
   public void keyPressed(KeyEvent e) {
      PPE = new EJemplos___();


       int key = e.getKeyCode();
       if (key == KeyEvent.VK_LEFT) {
           dx = -1;
           still = l.getImage();
           //System.out.println("Avanza_Izquierda");
           setAvanza_Izquierda("Avanza_Izquierda");
           PPE.setCadena("Avanza_Izquierda");
         
       }

       if (key == KeyEvent.VK_RIGHT) {
           dx = 1;
           still = s.getImage();

           // System.out.println("Avanza_Derecha");
           setAvanza_Derecha("Avanza_Derecha");
       }

       if (key == KeyEvent.VK_SPACE) {
           fire();
           //System.out.println("Fuego");
           setFuego("Fuego");



       }

       if (key == KeyEvent.VK_UP) {
           dy = 1;
           still = j.getImage();
           //System.out.println("Avanza_Arriba");
           setAvanza_Arriba("Avanza_Arriba");
       }
   }

   public void keyReleased(KeyEvent e) {
       int key = e.getKeyCode();

       if (key == KeyEvent.VK_LEFT) {
           dx = 0;
           //  System.out.println("Derecha");
           setDerecha("Derecha");
       }

       if (key == KeyEvent.VK_RIGHT) {
           dx = 0;
           //System.out.println("Izquierda");
           setIzquierda("Izquierda");
       }

       if (key == KeyEvent.VK_UP) {
           dy = 0;
           still = s.getImage();
           // System.out.println("Arriba");
           setArriba("Arriba");

       }
   }
}



Código (java) [Seleccionar]

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package Pantalla_Principal;

/**
*
* @author Mapers
*/


public class EJemplos___ extends Thread{
   private OurGame.__Camarada__ OCAM;
   private Pantalla_Principal.ejemplo PE;

   private String cadena ;

   public String getCadena() {
       return cadena;
   }

   public void setCadena(String cadena) {
       this.cadena = cadena;
   }




   public void run (){
       PE = new Pantalla_Principal.ejemplo();
       PE.setVisible(true);
       eventos();


   }



   public  void eventos (){

       System.out.println(getCadena());
   while(true){
        if(getCadena()!=null){
            System.out.println("hola mundo ");
        }
   }


}

}





estas dos  clases son las que deben interactuar osea cuando sea diferente de null se supone que ya paso a getcadena el valor  de PPE.setCadena("Avanza_Izquierda");  cuando presiono la tecla pero de alguna manera me sale null a que se deve gracias por su ayda

Valkyr

¿En qué parte del código inicias el Thread PPE = new EJemplos___()? puede ser que el problema sea ese.

Saludos.

mapers

mmmmmm a ver como implementarias tu el metodo o como lo trabajarias

Valkyr

Por un lado, el método que ejecuta el método setCadena, es decir, ¿el método keyPressed se ejecuta en algún instante? Sí la respuesta es si: ¿Se ejecuta el método setCadena("Avanza_izquierda")?, si la respuesta es sí entonces todo debería funcionar correctamente siempre y cuando realizases esto que te acabo de decir antes de iniciar el thread, es decir, antes de que se ejecute el método run() que se ejecuta con Thread.start().

Por otro lado, si no realizas nada de lo que te he preguntado anteriormente, evidentemente te devolverá null, puesto que no la inicializas a ningún valor.

Por eso te preguntaba en qué punto del programa inicias el Thread (es decir, haces nombreVariable.start()).

Saludos.

mapers

lo inicializo cuando hago clik en el menu de mi pantalla principal aquie mira

Código (java) [Seleccionar]


private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed

       C = new Cliente();
       Thread t = new Thread(C);
       t.start();  
       PP = new __Principal___();
       //C.Escribir_linea(null);


   }//


lo mismo para el servidor

Código (java) [Seleccionar]

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        S = new Servidor___._Servidor_();
        Thread t = new Thread(S);
        t.start();

         PP = new __Principal___();
       

        // TODO add your handling code here:
    }

Valkyr

Sí, pero hay estás iniciando Cliente, y eso no es lo que pusiste en el primer post. Yo me refiero a cuándo inicias el hilo de la clase Ejemplos__, la clase que contiene estos métodos:

Código (java) [Seleccionar]

public void run (){
        PE = new Pantalla_Principal.ejemplo();
        PE.setVisible(true);
        eventos();


    }



    public  void eventos (){

        System.out.println(getCadena());
    while(true){
         if(getCadena()!=null){
             System.out.println("hola mundo ");
         }
    }


Y que es la que hace acceso a la cadena que dices que te daba null.

Esta parte del código:

Código (java) [Seleccionar]

if (key == KeyEvent.VK_LEFT) {
            dx = -1;
            still = l.getImage();
            //System.out.println("Avanza_Izquierda");
            setAvanza_Izquierda("Avanza_Izquierda");
            PPE.setCadena("Avanza_Izquierda");

        }


Debe suceder antes de que inicies el hilo, que por cierto no lo haces.

Para ser más exactos, haz un acceso a la variable que dices que te da null y copia aquí la traza de la pila que te devolverá. Así podremos ver más claramente desde donde realizas las llamadas, desde que clase y demás.

Saludos.

mapers

lo que pasa es que depure mi codigo y replantee todo osea me queda esto
Código (java) [Seleccionar]

package OurGame;

import Cliente.Cliente;
import Servidor___._Servidor_;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;



public class __Camarada__ {

   

    //.....................................//
   



    int x, dx, y, nx, nx2, left, dy;
    Image still, jump, reverse;
    int ammo = 100;
    ImageIcon s = new ImageIcon("Anime\\still.png");
    ImageIcon j = new ImageIcon("Anime\\jumpv.png");
    ImageIcon l = new ImageIcon("Anime\\leftvn.png");
    static ArrayList bullets;
    public String Derecha, Izquierda, Arriba, Fuego,
            Avanza_Derecha, Avanza_Izquierda,
            Avanza_Arriba;

    //**************************************************************//
    public String getArriba() {
        return Arriba;
    }

    public void setArriba(String Arriba) {
        this.Arriba = Arriba;
    }

    public String getAvanza_Arriba() {
        return Avanza_Arriba;
    }

    public void setAvanza_Arriba(String Avanza_Arriba) {
        this.Avanza_Arriba = Avanza_Arriba;
    }

    public String getAvanza_Derecha() {
        return Avanza_Derecha;
    }

    public void setAvanza_Derecha(String Avanza_Derecha) {
        this.Avanza_Derecha = Avanza_Derecha;
    }

    public String getAvanza_Izquierda() {
        return Avanza_Izquierda;
    }

    public void setAvanza_Izquierda(String Avanza_Izquierda) {
        this.Avanza_Izquierda = Avanza_Izquierda;
    }

    public String getDerecha() {
        return Derecha;
    }

    public void setDerecha(String Derecha) {
        this.Derecha = Derecha;
    }

    public String getFuego() {
        return Fuego;
    }

    public void setFuego(String Fuego) {
        this.Fuego = Fuego;
    }

    public String getIzquierda() {
        return Izquierda;
    }

    public void setIzquierda(String Izquierda) {
        this.Izquierda = Izquierda;
    }

//**************************************************************//
    public __Camarada__() {
        x = 75;
        left = 150;
        nx = 0;
        nx2 = 685;
        y = 172;
        still = s.getImage();
        bullets = new ArrayList();
       

    }
//************************************************************//

    public Rectangle getBounds() {
        return new Rectangle(left, y, 63, 154);
    }
//************************************************************//

    public static ArrayList getBullets() {
        return bullets;
    }
//************************************************************//

    public void fire() {
        if (ammo > 0) {
            ammo--;
            //The v is from the board class, which corresponds to the character's
            //position when it is jumping, resulting in the bullet being formed
            //at a higher position when the character is at the peak of its jump
            ___Bala z = new ___Bala((left + 60), (__Animar___.v + 154 / 2));
            bullets.add(z);
        }
    }
//************************************************************//

    public void move() {
        if (dx != -1) {
            if (left + dx <= 150) {
                left += dx;
            } else {
                x = x + dx;

                nx2 = nx2 + dx;
                nx = nx + dx;
            }
        } else {
            if (left + dx > 0) {
                left = left + dx;
            }
        }
    }
//************************************************************//

    public int getX() {
        return x;
    }

    public int getLeft() {
        return left;
    }

    public int getnX() {
        return nx;
    }

    public int getnX2() {
        return nx2;
    }

    public int getdx() {
        return dx;
    }

    public Image getImage() {
        return still;
    }

//************************************************************//
    public void keyPressed(KeyEvent e) {



        int key = e.getKeyCode();
        if (key == KeyEvent.VK_LEFT) {
            dx = -1;
            still = l.getImage();
            //System.out.println("Avanza_Izquierda");
            setAvanza_Izquierda("Avanza_Izquierda");

         
         
           
        }

        if (key == KeyEvent.VK_RIGHT) {
            dx = 1;
            still = s.getImage();

            // System.out.println("Avanza_Derecha");
            setAvanza_Derecha("Avanza_Derecha");
           
        }

        if (key == KeyEvent.VK_SPACE) {
            fire();
            //System.out.println("Fuego");
            setFuego("Fuego");



        }

        if (key == KeyEvent.VK_UP) {
            dy = 1;
            still = j.getImage();
            //System.out.println("Avanza_Arriba");
            setAvanza_Arriba("Avanza_Arriba");
        }
    }

    public void keyReleased(KeyEvent e) {
        int key = e.getKeyCode();

        if (key == KeyEvent.VK_LEFT) {
            dx = 0;
            //  System.out.println("Derecha");
            setDerecha("Derecha");
        }

        if (key == KeyEvent.VK_RIGHT) {
            dx = 0;
            //System.out.println("Izquierda");
            setIzquierda("Izquierda");
        }

        if (key == KeyEvent.VK_UP) {
            dy = 0;
            still = s.getImage();
            // System.out.println("Arriba");
            setArriba("Arriba");

        }
    }
}



que es donde estan los metodo de deteccion del teclado ahora tengo cliente y servidor
Código (java) [Seleccionar]

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Servidor___;

import java.io.*;
import java.net.*;

/**
*
* @author Mapers
*/
public class _Servidor_ implements Runnable {

    private ServerSocket Ss;
    private Socket S;
    private ObjectOutputStream OOS;
    private ObjectInputStream OIS;
    private OurGame.__Camarada__ OCAM;
 
    public void run() {
        try {
            Ss = new ServerSocket(9999);
            S = Ss.accept();
            OOS = new ObjectOutputStream(S.getOutputStream());
            OIS = new ObjectInputStream(S.getInputStream());
   
            this.Leer_linea();


        } catch (Exception e) {
            this.closeServer();
            e.printStackTrace();
        }
    }

    public void Escribir_linea(String linea) {
       
        try {
            OOS.writeObject(linea);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void Leer_linea() {
        try {
            while (true) {
               
               
                Object Objt = OIS.readObject();
                if (Objt != null && Objt instanceof String) {
                    System.out.println("Cliente se mpvioi "+ (String)Objt);
                    Thread.sleep(15);
                }
            }
        } catch (Exception e) {
        }
    }

    public void closeServer() {
        try {
            OOS.close();
            OIS.close();
            S.close();
            Ss.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}


ahora todo esta mas claro ,esque estaba muy desordenado ya ahora tengo eso quiero que los metodos get  puedan pasar los string que estan guardando cuando se genera el eventohacia el cleinte y servidor viseversa ,como podria hacer ese metodo ..............