PDA

View Full Version : [java] errore in runtime...


Tommo
05-02-2006, 19:25
Sto cercando di imparare java per fare un gioco su internet tipo Ogame (se qulcuno lo conosce) usando le applets...
A parte questo ora sto tentando di fare un semplice programino che cliccando sullo schermo fa comparire una pallina rossa che poi si muove e rimbalza sui bordi... ho creato una classe vector per la sua posizione e velocitā:

public class vector {

public int x, y;
public vector(int newX, int newY) {
x = newX;
y = newY;
}

public void set(vector newVector) {
x = newVector.x;
y = newVector.y;
}

public void sub(vector newVector) {
x -= newVector.x;
y -= newVector.y;
}
}


Funziona se usata a parte, ma ho provato a usare un "public vector pos" nella classe della pallina e se uso comandi del tipo "Spot.pos.x = 10" o qulsiasi cosa che agisce su questo compila bene ma mi da un errore

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at windowComponent.mousePressed(windowComponent.java:35)
at java.awt.Component.processMouseEvent(Component.java:5485)
....

quando quella riga si esegue... perchč???
grazie in anticipo...

rdefalco
05-02-2006, 19:57
Non capisco cosa c'entri un Event di AWT con un semplice assegnamento di variabile in veritā...

Tommo
05-02-2006, 20:33
Perchč mi da quell'errore assegnando una semplice variabile?
il bello č che nn lo so neanch'io... ho iniziato a usare il java da poco, semplicemente ho visto che se nn uso il vettore pos in spot nn dā errori... in caso contrario quello č il risultato. Forse quell'errore č legato al fatto che l'assegnamento lo faccio nel metodo MousePressed...

rdefalco
05-02-2006, 20:38
Perchč mi da quell'errore assegnando una semplice variabile?
il bello č che nn lo so neanch'io... ho iniziato a usare il java da poco, semplicemente ho visto che se nn uso il vettore pos in spot nn dā errori... in caso contrario quello č il risultato. Forse quell'errore č legato al fatto che l'assegnamento lo faccio nel metodo MousePressed...

Magari Spot non ha visibilitā nella routine MousePressed

tglman
06-02-2006, 10:52
Ma il new dell'oggetto l'hai fatto:
Cioe hai scritto da qualche parte "pos = new vector()" o "pos = new vector(x,y)".
se non istanzi l'oggetto e normale che ti da null pointer

Tommo
06-02-2006, 15:24
ma lo devo scrivere DENTRO al construct di spot?
in quel caso allora io nn l'ho fatto...

ok ho scritto


public spot(int newX, int newY) {
pos = new vector(newX,newY);
force = new vector(0,0);
size = 1;
}


e ora funziona...pensavo che bastasse scrivere public vector pos come per gli int... cmq grazie

un'altra domanda... ma se scrivo "vector pos = new vector(0,0);" invece che "pos = new vector(0,0);" cambia qualcosa?