Addict Rick
Gebruiker
- Lid geworden
- 20 feb 2009
- Berichten
- 6
Deze vraag is misschien redelijk simpel, maar ik kom er toch niet uit, na een half jaar HBO Informatica.
Ik moet voor een stap van een Java opdracht vliegtuigen en parashutisten op kunnen slaan in een ArrayList. Deze vliegtuigen en parashutisten zijn aangemaakt in een andere klasse.
Deze vliegtuigen en parashutisten moeten worden aangemaakt, in een ArrayList gezet worden, en op het scherm worden weergegeven als ik op het scherm klik. De rechtermuisknop doet zit met parashutisten, de linkermuisknop met vliegtuigen.
Ik heb de code gemaakt, maar nu gebeurt er iets raars.
Als ik op de linkermuisknop of de rechtermuisknop druk, verschijnt er helemaal niets, en ik krijg een NullpointerException van de code waarmee ik iets toevoeg aan een ArrayList. Hoewel, als ik eerst op de linkermuisknop en daarna snel op de rechtermuisknop druk, verschijnt er opeens wél een vliegtuig. Dit vliegtuig doet precies wat hij hoort te doen, maar staat niet in een ArrayList, en deze truuk lukt niet met een parashutist.
Hier staat de code die ik gebruik.
HoofdPaneel
VliegtuigController
Kan iemand mij helpen? Of is er meer informatie nodig?
Ik moet voor een stap van een Java opdracht vliegtuigen en parashutisten op kunnen slaan in een ArrayList. Deze vliegtuigen en parashutisten zijn aangemaakt in een andere klasse.
Deze vliegtuigen en parashutisten moeten worden aangemaakt, in een ArrayList gezet worden, en op het scherm worden weergegeven als ik op het scherm klik. De rechtermuisknop doet zit met parashutisten, de linkermuisknop met vliegtuigen.
Ik heb de code gemaakt, maar nu gebeurt er iets raars.
Als ik op de linkermuisknop of de rechtermuisknop druk, verschijnt er helemaal niets, en ik krijg een NullpointerException van de code waarmee ik iets toevoeg aan een ArrayList. Hoewel, als ik eerst op de linkermuisknop en daarna snel op de rechtermuisknop druk, verschijnt er opeens wél een vliegtuig. Dit vliegtuig doet precies wat hij hoort te doen, maar staat niet in een ArrayList, en deze truuk lukt niet met een parashutist.
Hier staat de code die ik gebruik.
HoofdPaneel
Code:
import javax.swing.*;
import java.awt.*;
public class HoofdPaneel extends JPanel
{
private VliegtuigenController controller;
public HoofdPaneel()
{
setBackground(new Color(153,217,234));
setLayout(null);
controller = new VliegtuigenController(this);
addMouseListener(controller);
}
}
VliegtuigController
Code:
import java.awt.event.*;
import java.util.*;
public class VliegtuigenController extends MouseAdapter
{
private HoofdPaneel hoofdpaneel;
private ArrayList<Vliegtuig> lijst1;
private ArrayList<Parashutist> lijst2;
public VliegtuigenController(HoofdPaneel hoofdpaneel)
{
ArrayList<Vliegtuig> lijst1 = new ArrayList<Vliegtuig>();
ArrayList<Parashutist> lijst2 = new ArrayList<Parashutist>();
this.hoofdpaneel = hoofdpaneel;
}
public void mouseClicked(MouseEvent e)
{
if(e.isMetaDown())
{
Parashutist parashutist = new Parashutist(e.getX(), e.getY());
ParashutistView view2 = new ParashutistView(parashutist, e.getX(), e.getY());
new ParashutistController(parashutist, hoofdpaneel, view2);
lijst2.add(parashutist);
hoofdpaneel.add(view2);
}
else
{
Vliegtuig vliegtuig = new Vliegtuig(e.getX(), e.getY());
VliegtuigView view = new VliegtuigView(vliegtuig, e.getX(), e.getY());
new VliegtuigController(vliegtuig, view, hoofdpaneel);
lijst1.add(vliegtuig);
hoofdpaneel.add(view);
}
}
}
Kan iemand mij helpen? Of is er meer informatie nodig?