Ich bin jetzt auf ein neues Problem gestossen.
Muss zwei verschiedene Figuren zeichnen lassen, und zwar Quadrate und Kreise.
Ich habe zwei Klassen, suqare und circle.
Wenn ich jetzt in diesen zwei Klassen ein Interface implementieren möchte, muss ich ja eine allgemeine Figur auswählen, wie z.B Shape. das Problem ist, dass ich dann gewisse Methoden wie translate nicht mehr zur Verfügung hätte.
Ich habe jetzt probiert anstatt Shape, direckt ein Rectangle zu returnieren, ich bekomme zwar keinen Error, aber es funktioniert trotzdem nicht.
Unten noch ein paar Zeilen von meinem Code.
Hat jemand eine Idee?
[Java]
import java.awt.Shape;
public interface MyShape {
Shape getShape();
}
=======
public class MySquare implements MyShape{
private Rectangle mySquare;
public Rectangle getShape()
{
return mySquare;
}
}
=======
public class shapeArrayComponent extends JComponent {
ArrayList<MyShape> shapeArray = new ArrayList<MyShape>();
public void moveBy(int dx, int dy) {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
for(int i = 0; i < shapeArray.size(); i++)
{
g2.draw(shapeArray.get(i).getShape());
}
}
for(int i = 0; i < shapeArray.size(); i++)
{
if (shapeArray.get(i).getMove())
{
shapeArray.get(i).getShape().translate(dx, dy);
repaint();
}
}
}
}
[/Java]