Hi, ich habe eine Klasse, in der gibt es eine Methode, die mir etwas auf mein JPanel zeichnet, sie nimmt sich ein paar koordinaten aus einem Array, einem Vector2D array, diese Klasse habe ich selbstgeschrieben:
Dann gibt es da noch eine methode namens init(), die diese Arrays erstellt, also dass sie nicht mehr null sind. Diese Methode wird im Constructor gestartet, bevor das JPanel an ein JFrame geadded wird, trotz all dem, geht das ganze nicht, es wird immer wieder darauf verviewesen, dass von einem Vector, das mit dem getX() = null ist. Wieso?
Immer wieder wird mir gesagt, dass das hier null ist:
Was mache ich denn falsch?
Er wirft immer wieder eine nullPointerException
Java:
package math;
public class Vector2D
{
// Attributes
double x = 0;
double y = 0;
public Vector2D(double x, double y)
{
this.x = x;
this.y = y;
}
public int getX()
{
return (int) x;
}
public int getY()
{
return (int) y;
}
public int getDistance(Vector2D vec_01)
{
int distance = 0;
double a = vec_01.getX()-x;
double b = vec_01.getY()-y;
distance = (int) (Math.pow(a, 2) + Math.pow(b, 2));
distance = (int) Math.sqrt(distance);
return distance;
}
}
Java:
public class Game extends JFrame
{
Vector2D[] BulletPoint = new Vector2D[bullets];
Vector2D[] StartPoint = new Vector2D[bullets];
public void init()
{
IndianVector = new Vector2D(width/2,height/2);
int i = 0;
while(i<bullets)
{
shot[i] = false;
StartPoint[i] = new Vector2D(0,0);
BulletPoint[i] = new Vector2D(-3,-3);
i++;
}
}
}
public Game()
{
init();
//...
JPanel mainPanel = new JPanel()
{
public void paintComponent(Graphics g)
{
drawGame((Graphics2D)g);
}
};
add(mainPanel,"Center");
// ...
}
public void drawGame(Graphics2D g)
{
g.setColor(Color.green);
int i = 0;
while(i<bullets)
{
g.drawLine(BulletPoint[i].getX(),BulletPoint[i].getY(),BulletPoint[i].getX()+arrow_lenght,BulletPoint[i].getY());
i++;
}
}
Code:
g.drawLine(BulletPoint[i].getX() /** das da */,...
Er wirft immer wieder eine nullPointerException