Trampoline en kinderen

  • Onderwerp starter Onderwerp starter Seed
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Seed

Nieuwe gebruiker
Lid geworden
18 jan 2008
Berichten
3
Hallo,

Ik zal de situatie even kort uitleggen. Het is de bedoeling dat ik een programma maak met trampolines en kinderen die erop springen. Hierbij heb ik een paneel klasse, een frame klasse en klasses voor een kind en een trampoline doormiddel van het MVC principe.

Ik ben nu zover dat als ik met de rechtermuisknop klik op het scherm dan verschijnt er een trampoline op die plek. Het is de bedoeling dat als ik dan rechtsklik op die trampoline dat er dan een kind verschijnt. Ook dit lukt nog. Maar als ik nou een 2e trampoline maak en ik klik op de 1e trampoline, dan wil ik dat er nog een kind bijkomt op de 1e trampoline, maar dat gebeurt niet. Deze komt namelijk op de 2e trampoline.

Hierbij de code van het paneel:

Code:
package EindopdrachtTrampolines;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class Stap2Paneel extends JPanel implements MouseListener 
{
	private Stap2KindModel kind; // alle kinderen die er zijn
	private Stap2KindView kindView; // voor elk kind een view
	private Stap2KindController kindController; // voor elk kind een controller
	
	private Stap2TrampolineModel trampoline; // alle trampolines die er zijn
	private Stap2TrampolineView trampolineView; //voor elke trampoline een view
	private Stap2TrampolineController trampolineController; // voor elke trampoline een controller
	
	private ArrayList<Stap2KindModel> lijstKinderen; // een lijst om de kinderen in op te slaan
	private ArrayList<Stap2TrampolineModel> lijstTrampolines; // een lijst om de trampolines in op te slaan
	
	private int x,y;

	public Stap2Paneel()
	{
		setLayout(null); // geen layout manager
		setBackground(Color.WHITE); // achtergrondkleur wit
		
		addMouseListener(this);

		//initialiseren van de lijst
		lijstTrampolines = new ArrayList<Stap2TrampolineModel>();
	}

	public void mouseClicked( MouseEvent e ) 
	{
                           if( e.isMetaDown() ) // Onderzoek of met de rechterknop is geklikt
                           {
        	                        x = e.getX(); // de x-coordinaat ophalen van de plaats waar er is geklikt en deze als variabele x instellen
                                        y = e.getY(); // de y-coordinaat ophalen van de plaats waar er is geklikt en deze als variabele y instellen
            
                                        lijstTrampolines.add(trampoline); // trampoline toevoegen aan de lijst
                                        lijstKinderen = new ArrayList<Stap2KindModel>();
            
	                        trampoline = new Stap2TrampolineModel(x,y,100,"Poing",lijstKinderen); //model
		         trampolineView = new Stap2TrampolineView(trampoline); //view
		        trampolineController = new Stap2TrampolineController(trampoline, trampolineView); //controller

		        trampolineView.setBounds(trampoline.getXInvoer(),trampoline.getYInvoer(),trampoline.getFormaat()+1,20); // positie instellen door de xInvoer en yInvoer op te halen, en grootte instellen door formaat op te halen en 20 in te vullen als hoogte
			
			for(Stap2TrampolineModel trampoline : lijstTrampolines) // voor elke trampoline uit de lijst de view op het paneel zetten
			{
				add(trampolineView);
			}
			
			trampolineView.addMouseListener(new MuisHandler());
			
			trampolineView.repaint(); // opnieuw tekenen
                                      }
	}
	
	public void mouseEntered( MouseEvent e ) {}
	public void mouseExited( MouseEvent e ) {}
	public void mousePressed( MouseEvent e ) {}
	public void mouseReleased( MouseEvent e ) {}
	
	class MuisHandler implements MouseListener
	{
		public void mouseClicked( MouseEvent e ) 
		{
			if( e.isMetaDown() ) // Onderzoek of met de rechterknop is geklikt
	        {
				lijstKinderen.add(kind); // trampoline toevoegen aan de lijst
            
				kind = new Stap2KindModel(x,y-65,100,Color.blue,Color.red,"SPRINGEN"); //model
				kindView = new Stap2KindView(kind); //view
				kindController = new Stap2KindController(kind, kindView); //controller

				kindView.setBounds(kind.getXInvoer()-10,kind.getYInvoer()-kind.getSpringHoogte(),20,kind.getSpringHoogte()+65);
			
				for(Stap2KindModel kind : lijstKinderen) // voor elke trampoline uit de lijst de view op het paneel zetten
				{
					add(kindView);
				}
			
				x += 20;
			
				kindView.repaint(); // opnieuw tekenen
	        }
			
		}
		public void mouseEntered( MouseEvent e ) {}
		public void mouseExited( MouseEvent e ) {}
		public void mousePressed( MouseEvent e ) {}
		public void mouseReleased( MouseEvent e ) {}
	}
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan