Hey wszystkim, mam problem z kilkoma błędami. W ramach ćwiczeń i zdobywania doświadczenia na własną rękę chciałbym napisać w Java2D, wykres w układzie współrzędnym w pogoni za Moją koncepcją, wykres znajdował by się w prostokącie ( tak gdzieś wyczytałem, że łatwiej jest w nim zrobić go ) i składał by się z punktów tworzonych metodą Point2D.Double(x,y), niestety napotkałem problemy jak je wyświetlić/narysować w okienku. Metoda g.draw(...) nie obsługuje owej klasy i niestety nie mogę jej użyć, Eclipse podpowiedziało mi rzutowanie Shape na cały nowy obiekt. Uzyskałem po kompilacji tego typ błąd : java.awt.geom.Point2D$Double cannot be cast to java.awt.Shape. Jeśli ktoś mógłby mi podpowiedzieć czy w dobrą stronę się kieruję i jak mogę naprawić to.
Umieszczam kod klasy w której wszystko się dzieje.
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JComponent;
public class DrawComponent extends JComponent{
private static final int DEFAULT_WIDTH = 400;
private static final int DEFAULT_HEIGHT = 400;
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
Point2D.Double[][] tab = new Point2D.Double[100][100];
double wsp_x = 100, wsp_y = 100;
Rectangle2D rect = new Rectangle2D.Double(wsp_x,wsp_y,DEFAULT_WIDTH/2,DEFAULT_HEIGHT/2);
g2d.draw(rect);
for(int x = 0 ; x < rect.getWidth() ; x++){
for(int y = 0 ; y < rect.getHeight() ; y++){
Point2D.Double p = new Point2D.Double(x,y);
if(x==y)
tab[x][y] = p;
g2d.draw((Shape) new Point2D.Double(tab[x][y].getX(),tab[x][y].getY()));
}
}
}
public Dimension getPreferredSize(){
return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
}
}