您的
Point课程无法访问的
Graphics2D对象
CartesianPanel。
您应该将
FromCartToPix和
DrawPoint方法的功能移至
CartesionPanel。这样,您实际上就可以绘制点,并且可以将数据(
Point)与用户界面(
CartesionPanel)分开。
// add in CartesionPanelprivate List<Point> points = new ArrayList<>();public void drawPoint(Point point) { points.add(point); repaint();}private void drawPointonPanel(Point point, Graphics g) { final int pointDiameter = 5; final int x = X_AXIS_FIRST_X_COORD + (point.x * xLength) - pointDiameter / 2; final int y = Y_AXIS_SECOND_Y_COORD - (point.y * yLength) - pointDiameter / 2; g.fillOval(x, y, pointDiameter, pointDiameter);}public void paintComponent(Graphics g) { // existing pre ... // draw points points.forEach(p -> drawPointonPanel(p, g))}在您的
main函数中,您可以
Point通过以下方式绘制:
Cartesianframe frame = new Cartesianframe();frame.showUI();frame.panel.drawPoint(new Point(3, 4));



