IndexOutOfBoundsException bei ArrayList

Rufus.Mueller

Bekanntes Mitglied
Ich habe unten stehenden Ausschnitt aus einem Konstruktor und unten stehende main-Methode um diesen zu testen. Wenn ich das Programm ablaufen lasse, enthalte ich in der Zeile sequenz.get(0).setBackground(Color.GREEN); eine IndexOutOfBoundsException. Irgendwas muss bei dem Aufbau der ArrayList über die fore-Schleife im Konstruktor schief gegangen sein, nur was? Eclipse zeigt keine Fehlermeldung an.

Java:
	//Konstruktor der Klasse Sequenz
	
	public Sequenz(int a) {
		int anzQuadrate=a;
		
		
		if (anzQuadrate==4) {
			for (int i =1; i>=4; i++) {
			sequenz.add(new JPanel());
			}
			sequenz.get(0).setBackground(Color.GREEN);
			sequenz.get(1).setBackground(Color.RED);
			sequenz.get(2).setBackground(Color.BLUE);
			sequenz.get(3).setBackground(Color.YELLOW);
		}



Java:
public class Farbquadrate2 {
	
	public static void main(String[] args) throws InterruptedException{
		
		JFrame frame = new JFrame();
		frame.setExtendedState(Frame.MAXIMIZED_BOTH);	
		
		Sequenz sequenz1 = new Sequenz(4);
		sequenz1.praesentieren(frame);
		
		
	}
	
	
}

Die ArrayList wurde als Instanzvariable deklariert: ArrayList<JPanel> sequenz = new ArrayList<JPanel>();
 
Deine Schleife wird gar nicht erst betreten
[c]for (int i = 1; i >= 4; i++) {[/c]
Schau dir mal die Bedingung in der Mitte an! (führe Schleifenrumpf solange aus wie i >= 4 ist - du sagst zu Beginn aber dass i = 1 ist, d.h. sie wird nie ausgeführt 😀) -->
Code:
for (int i = 1; i <= 4; i++)
oder besser
[c]for (int i = 0; i < 4; i++)[/c]
 

Zurück
Oben