Hi!
Ich habe ein Problem. Und zwar möchte ich gerne meinen Code verbessern, aber hab keine Idee wie. Die Oberfläche wird ungefär so aufgebaut:
Wenn ich nun die Maus über das Panel bewege wird natürlich verdammt oft die Funktion getObjectAt(int x, int y) aufgerufen um zu schauen ob sich der Mauszeiger innerhalb eines gezeichneten Objekts befindet. Das geht bestimmt besser.
Irgendwelche Ideen/Pattern?
Grüße!
Ich habe ein Problem. Und zwar möchte ich gerne meinen Code verbessern, aber hab keine Idee wie. Die Oberfläche wird ungefär so aufgebaut:
Java:
class MyPanel extends JPanel
{
private ArrayList<MyObject> objects = new ArrayList<MyObject>();
public MyPanel()
{
addMouseMotionListener(new MyMouseMotionListener());
}
public MyObject getObjectAt(int x, int y)
{
for (MyObject o: objects)
{
if (x > o.x_pos_ && x < o.x_pos_ + O_SIZE &&
y > o.y_pos_ && y < o.y_pos_ + O_SIZE)
return o;
}
}
public void paintComponent(Graphics g)
{
for (MyObject o: objects)
{
o.paint(g);
}
}
}
class MyObject
{
public void paint(Graphics g)
{
g.fillRect(x, y, xSize, ySize);
}
}
class MyMouseMotionListener implements MouseMotionListener
{
public void mouseMoved(MouseEvent e)
{
if (getObjectAt(e.getX(), e.getY()) != null) showToolTip();
}
}
Irgendwelche Ideen/Pattern?
Grüße!