"Point2DDouble cannot be cast... "

0

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);
	}
}
0

Najprostszy sposób rysowania punktu, to

g.drawLine(x,y,x,y);

1 użytkowników online, w tym zalogowanych: 0, gości: 1