Datentypen Objekt lässt sich nicht zu arraylist hinzufügen

CptK

Bekanntes Mitglied
Servus, ich habe da ein kleines Problem:
Ich habe da eine Klasse ImageLoader, in der Bilder erzeugt werden und mit x und y Koordinaten usw ausgestattet werden. In der Klasse sollen diese dann gezeichnet werden, was auch ganz gut funktioniert, bis auf 5 Patronen, die unten links in der Ecke angezeigt werden sollen (Stelle ist im Code markiert):
ImageLoader:
Java:
package Actions;

import java.awt.Font;
import java.awt.image.BufferedImage;

import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JLabel;

import Gui.Panel;

public class ImageLoader {   
    private int x,y,maxy,width,height;
    private String path, imagename;   
    private boolean huhnisDown = true;   
    private BufferedImage image;
           
           
    public ImageLoader(int x,int y, int maxy, String path, int width, int height, String name) {
        this.x = x;
        this.y = y;
        this.maxy = maxy;
        this.path = path;
        this.width = width;
        this.height = height;
        imagename = name;
       
        try {
            image = ImageIO.read(new File(path));
        } catch (IOException e) {
            e.printStackTrace();
        }   
       
    }
   
    public void setX(int x) {    this.x = x;    }
    public int getX()        {    return x;    }
   
    public void setY(int y)    {    this.y = y;    }
    public int getY()        {     return y;     }
   
    public int getMaxY()    {    return maxy;}
   
    public void setWidth(int w)    { this.width = w;    }
    public int getWidth()        { return width;        }
   
    public void setHeight(int h) { this.height = h;    }
    public int getHeight()         { return height;    }
   
    public void setImage(String path) { try { image = ImageIO.read(new File(path)); } catch (IOException e) { e.printStackTrace(); } }    
    public BufferedImage getImage()    {    return image;    }
   
    public String getname()    { return imagename;    }
   
   
   

}
Panel:
Java:
package Gui;

import java.awt.*;
import java.util.ArrayList;

import javax.swing.*;

import Actions.ImageLoader;

public class Panel extends JPanel {
   
    private static final long serialVersionUID = 1L;
    private int move = 15;
    private boolean ingame = true, laden = false;
   
    private int schussNr = 4, punkte = 0;
   
    public ArrayList<ImageLoader> il = new ArrayList<ImageLoader>();
   
    private JLabel points;
   
    public Panel() {
       
        setSize(1000,743);
        setLayout(null);
        setVisible(true);
        repaint();
       
        points = new JLabel("Punkte: " + punkte);
        points.setBounds(790,10,200,40);
        points.setFont(new Font("Arial",Font.BOLD,25));
        points.setVisible(true);
        add(points);
       
    }
   
    public void paintComponent(Graphics g) {
       
        il.add(0, new ImageLoader(-1000, 0, 0, "rsc/MHBGE3.png", 3000, 743, "bgEbene3"));
        g.drawImage(il.get(0).getImage(), il.get(0).getX(), il.get(0).getY(), il.get(0).getWidth(), il.get(0).getHeight(), null);
       
        //Hühner Ebene2

        il.add(1, new ImageLoader(-1000, 0, 0, "rsc/MHBGE2.png", 3000, 743, "bgEbene2"));
        g.drawImage(il.get(1).getImage(), il.get(1).getX(), il.get(1).getY(), il.get(1).getWidth(), il.get(1).getHeight(), null);
       
        il.add(2, new ImageLoader(-1000, 0, 0, "rsc/MHBGE1.png", 3000, 743, "bgEbene1"));
        g.drawImage(il.get(2).getImage(), il.get(2).getX(), il.get(2).getY(), il.get(2).getWidth(), il.get(2).getHeight(), null);   
       
        il.add(3, new ImageLoader(-650, -45, 0, "rsc/Mühle.png", 600, 600, "mühlrad"));
        g.drawImage(il.get(3).getImage(), il.get(3).getX(), il.get(3).getY(), il.get(3).getWidth(), il.get(3).getHeight(), null);
       
        for(int i = 4; i < 10; i++) {
            int x = -900,y = 550,maxy = 480;
            if(i == 5) { x = -600; y = 490; maxy = 420; }
            else if(i == 6) { x = -100; y = 470; maxy = 400; }
            else if(i == 7)    { x = 400; y = 470; maxy = 300; }
            else if(i == 8) { x = 1000; y = 450; maxy = 370; }
            else if(i == 9) { x = 1600; y = 390; maxy = 310; }
            il.add(i, new ImageLoader(x, y, maxy, "rsc/Moorhuhn1.png", 40, 60, "huhnEbene2"));
            g.drawImage(il.get(i).getImage(), il.get(i).getX(), il.get(i).getY(), il.get(i).getWidth(), il.get(i).getHeight(), null);
            g.setColor(Color.RED);
            g.drawLine(il.get(i).getX(), il.get(i).getY(), il.get(i).getX()+40, il.get(i).getY());
            g.drawLine(il.get(i).getX(), il.get(i).getY()+60, il.get(i).getX()+40, il.get(i).getY()+60);
            g.drawLine(il.get(i).getX(), il.get(i).getY(), il.get(i).getX(), il.get(i).getY()+60);
            g.drawLine(il.get(i).getX()+40, il.get(i).getY(), il.get(i).getX()+40, il.get(i).getY()+60);
        }
       
//Hier ist das Problem: es wird nur die erste Patrone gemalt....
        for(int i = 10; i < 15; i++) {
            int xs = 10;
            il.set(i, new ImageLoader(xs, 650, 650, "rsc/shotpat.png", 25, 50, "patrone"));
            g.drawImage(il.get(i).getImage(), il.get(i).getX(), il.get(i).getY(), il.get(i).getWidth(), il.get(i).getHeight(), null);
            xs += 35;
        }   
       
        if(laden == true) {
            g.setColor(Color.RED);
            g.setFont(new Font("Impact", Font.BOLD, 30));
            g.drawString("Keine Munition", 380, 360);
        }
       
    }
   
   
    public void setIngame(boolean i) { ingame = i; }
    public boolean getIngame() { return ingame; }
   
    public void setLaden(boolean i) { laden = i; }
    public boolean getLaden() { return laden; }
   
    public int getMoveInt() { return move; }
   
    public int getSchussNr() { return schussNr; }
    public void setSchussNr(int i) { schussNr = i; }
   
    public int getpunkte() { return punkte; }
    public void setPunkte(int i) { punkte += i; }

    public void moveLeft() {
        for(int i = 0; i < 10; i++) {
            il.get(i).setX(il.get(i).getX() + getMoveInt());
        }
        repaint();
    }
   
    public void moveRight() {
        for(int i = 0; i < 10; i++) {
            il.get(i).setX(il.get(i).getX() - getMoveInt());
        }
        repaint();
    }
   
    public void pointsSetText(int p) { points.setText("Punkte: " + p); }
    public int getPoints() { return punkte; }
    public void setPoints(int p) { punkte = p; }
   
}
Der Error:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index 10 out-of-bounds for length 10
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
    at java.base/java.util.Objects.checkIndex(Unknown Source)
    at java.base/java.util.ArrayList.set(Unknown Source)
    at Gui.Panel.paintComponent(Panel.java:71)
    at java.desktop/javax.swing.JComponent.paint(Unknown Source)
    at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
    at java.desktop/javax.swing.JComponent.paint(Unknown Source)
    at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
    at java.desktop/javax.swing.JComponent.paint(Unknown Source)
    at java.desktop/javax.swing.JLayeredPane.paint(Unknown Source)
    at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
    at java.desktop/javax.swing.JComponent.paint(Unknown Source)
    at java.desktop/java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    at java.desktop/sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.desktop/java.awt.Container.paint(Unknown Source)
    at java.desktop/java.awt.Window.paint(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    at java.desktop/javax.swing.RepaintManager.access$1200(Unknown Source)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue.access$600(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

Ich weiß einfach nicht, was ich falsch gemacht habe und bin deshalb für jede Hilfe dankbar!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
N LocalTime einem Objekt zuweisen Java Basics - Anfänger-Themen 2
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M ArrayList - Objekt kopieren und ändern Java Basics - Anfänger-Themen 11
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
J Y-Koordinate von GUI-Objekt bestimmen Java Basics - Anfänger-Themen 2
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
M Objekt mit eindeutiger ID löschen, das nächste Objekt hat dann diese ID Java Basics - Anfänger-Themen 5
N Mit Objekt der Superklasse auf Methode der Subklasse zugreifen Java Basics - Anfänger-Themen 6
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt mit Methode erstellen Java Basics - Anfänger-Themen 6
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
W OOP Objekt Methode Java Basics - Anfänger-Themen 9
A Objekt in Arrayliste Java Basics - Anfänger-Themen 2
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
S Variablen Klassenvariable über Objekt aufrufen Java Basics - Anfänger-Themen 16
A Zufälliges Objekt basierend auf Wahrscheinlichkeiten bekommen. Java Basics - Anfänger-Themen 4
R Value von einem JSON-Objekt ausgeben Java Basics - Anfänger-Themen 4
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
S Objekt-Attribute "variabel" gestalten Java Basics - Anfänger-Themen 10
J Datenbankstruktur als Objekt anlegen Java Basics - Anfänger-Themen 4
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
B Objekt an neue Stage übergeben? Java Basics - Anfänger-Themen 9
scratchy1 Wie deklariert man eine Methode, die ein Objekt zurückgeben soll? Java Basics - Anfänger-Themen 22
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
C Objekt soll ein Array sein. Java Basics - Anfänger-Themen 15
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
R Vererbung werte von einem Objekt aus ein anderes übertragen Java Basics - Anfänger-Themen 7
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
L Objekt Typ zur Laufzeit ermitteln Java Basics - Anfänger-Themen 1
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
M Methode Objekt als Parameterübergabe Java Basics - Anfänger-Themen 6
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben