Hoe moet je een ArrayList uitlezen?

Status
Niet open voor verdere reacties.

romanosan

Gebruiker
Lid geworden
7 okt 2007
Berichten
88
Code:
ArrayList <Huis> mijnLijst;
mijnLijst = new ArrayList<Huis>();
mijnHuis1 = new Huis(10,100,80,35,Color.RED,"Java");
mijnLijst.add(mijnHuis1);

Mijn concrete vraag is: Als ik 3 huizen in de arrayList opsla, hoe maak ik de arrayLists dan zichtbaar op het scherm?
 
Als je Huis klasse een teken() functie heeft. Kan je dit als volgt doen:

Code:
for (Huis huis : mijnLijst) {
   huis.teken();
}
 
Als je Huis klasse een teken() functie heeft. Kan je dit als volgt doen:

Code:
for (Huis huis : mijnLijst) {
   huis.teken();
}

Ik heb inderdaad een tekenmethode gemaakt in mijn dataKlasse Huis.
Maar Ik krijg in de klasse: "Paneel" de volgende foutmelding: mijnLijst cannot be resolved.

Wat ik aan code heb geschreven is het volgende:

Code:
public Paneel() 
	{
		setBackground(Color.WHITE);	

		ArrayList <Huis> mijnLijst;
		mijnLijst = new ArrayList<Huis>();
		
		mijnHuis1 = new Huis(10,100,80,35,Color.RED,"Java");
		mijnLijst.add(mijnHuis1);
	}

	public void paintComponent(Graphics g) 
	{
		super.paintComponent(g);
		
		for (Huis mijnHuis1: mijnLijst) 
		{
			 mijnHuis1.teken(g);
		}
	}
 
Ik heb de oplossing gevonden:
Ten eerste ontbrak de volgende regel (declaratie): private ArrayList<Huis> mijnLijst;


Code:
public Paneel() 
	{
		setBackground(Color.WHITE);	

		[COLOR="Red"]ArrayList <Huis> mijnLijst;  <-- Deze regel moet weg[/COLOR]
		mijnLijst = new ArrayList<Huis>();
		
		mijnHuis1 = new Huis(10,100,80,35,Color.RED,"Java");
		mijnLijst.add(mijnHuis1);
	}

	public void paintComponent(Graphics g) 
	{
		super.paintComponent(g);
		
		for (Huis straatMetHuizen: mijnLijst) 
		{
			 straatMetHuizen.teken(g);
		}
	}
 
Dus om een concrete oplossing op mijn concrete vraag te geven, zie hieronder:
Bedankt voor het meedenken.

Code:
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;

import javax.swing.*;

public class Paneel extends JPanel
{ 
	private Huis huis1,huis2,huis3;
	private ArrayList<Huis> mijnLijst;


	public Paneel() 
	{
		mijnLijst = new ArrayList<Huis>();
		huis1= new Huis(blablabla);
		huis2= new Huis(blablabla); 
		huis3= new Huis(blablabla);
		
		mijnLijst.add(huis1);
		mijnLijst.add(huis2);
		mijnLijst.add(huis3);
	}

	public void paintComponent(Graphics g) 
	{
		super.paintComponent(g);
		
		for (Huis straatMetHuizen: mijnLijst) 
		{
			straatMetHuizen.teken(g);			
			
		}
	}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan