Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo allerseits,
Auf einem JPanel werden in unserem Schulprojekt Objekte gezeichnet. Diese werden aus einer ArrayList gezeichnet in der sie bei dem Erstellen eingetragen werden. Unsere Problem ist folgendes:
Wie können wir auf die einzelnen Objekte zugreifen, sie beispielweise mit der Maus markieren um sie dann zu verschieben. Der Quellcode des Panels:
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Shape;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Zeichenflaeche1 extends JPanel {
private int x1, y1, x2, y2;
private ArrayList<Bestandteil> formen;
public Zeichenflaeche1()
{
formen = new ArrayList();
}
public Dimension getPreferredSize()
{
return new Dimension( 300, 400 );
}
public int anzahlObjekte()
{
return formen.size();
}
public void paintComponent( Graphics g )
{
super.paintComponent( g );
Graphics2D g2d = (Graphics2D)g;
if (anzahlObjekte()>0)
{
for (Iterator i = formen.iterator(); i.hasNext();)
{
Bestandteil aktuellesTeil = (Bestandteil) i.next();
g2d.draw(aktuellesTeil.gibAktuelleFigur());
}
}
}
public void ObjektHinzufuegen(Bestandteil bestandteil){
formen.add(bestandteil);
repaint();
}
}
Ich denke mal meine Erklärung ist etwas dürftig, also nachfragen bitte was ihr noch über das projekt wissen müsst um uns helfen zu können.
da wirste logisch bzw in dimensionen denken müssen...
wenn geklick wird, musste schauen ob ein objekt auf der position liegt... also ne schleife die welches deiner objekte auf dem fleck vorhanden is...
danach haste das objekt, der rest sollte simpel zu lösen sein
Die Objekte werden ja irgendwo positioniert und müssen daher auch irgendwo die X- und Y-Koordinaten gespeichert haben oder? Wenn du die Position der Maus und der Objekte hast, dann hast du doch die Koordinaten welche du vergleichen kannst oder? Also einfach eine if-Abfrage in einer Schlaufe durch alle Objekte, sobald du klickst...