Ogólnie mój program ma polegać na symulacji graficznej rzutu ukośnego
Mam klasę rozszerzającą Ellipse2D.Duble o nazwie Ball. Klasa ta wygląda mniej więcej tak: (pomijam gettery, settery i inne nieistotne pierdoły)
import java.awt.geom.Ellipse2D;
public class Ball extends Ellipse2D.Double {
private double xSpeed;
private double ySpeed;
private double weight;
public Ball(double x, double y, double width, double height, double xSpeed, double ySpeed, double weight) {
super(x, y, width, height);
this.xSpeed = xSpeed;
this.ySpeed = ySpeed;
this.weight = weight;
}
}
W klasie komponentu rysującego tworzę obiekt Ball b1
b1 = new Ball(100, 100, 50, 50, 30, 20, 5);
a potem próbuję go narysować public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
if (ball != null) {
g2.draw(b1);
}
}
Problem w tym że rysuje sie tylko pojedyncza kropka w lewym górnym rogu ekranu. Mimo użycia konstruktora b1 ma pozycję [0, 0] i rozmiary 0x0
Zauważyłem jednak że jeżeli utworzę sobie na szybko obiekt Ellipse2D.Double i go narysuję to wszystko działa. Więc wydaje mi się chyba źle napisałem klasę Ball. Coś zepsułem przy dziedziczeniu chyba.
Prosiłbym o wskazówki :)
edit: jakby co to klasa panelu rysującego ma pole Ball b1, a b1 inicjalizuję po naciśnięciu przycisku znajdującego się w innym panelu.