Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java使用变量绘制几何图形_Java - Fatal编程技术网

Java使用变量绘制几何图形

Java使用变量绘制几何图形,java,Java,好的,我正在编写一个蛇游戏,我想让它保持相当简单,所以我选择让蛇的头部只是一个矩形,而身体只是圆形。但它当然不会像我想的那样工作 我收到以下错误消息,椭圆无法解析为类型 及 类型图形中的方法drawRectint,int,int,int不适用于参数矩形 eclipse错误消息我不知道为什么会这样说 但是为什么drawRect不适用于这些争论呢?我是说我想画的是长方形 我是如何做到这一点的,还是不可能,我必须找到另一种方法 Rectangle snakeHead = new Rectangle(5

好的,我正在编写一个蛇游戏,我想让它保持相当简单,所以我选择让蛇的头部只是一个矩形,而身体只是圆形。但它当然不会像我想的那样工作

我收到以下错误消息,椭圆无法解析为类型

类型图形中的方法drawRectint,int,int,int不适用于参数矩形

eclipse错误消息我不知道为什么会这样说

但是为什么drawRect不适用于这些争论呢?我是说我想画的是长方形

我是如何做到这一点的,还是不可能,我必须找到另一种方法

Rectangle snakeHead = new Rectangle(5,10,20,30);
Ellipse   snakeBody = new Ellipse (5,10,20,30);

public void paint(Graphics g) {

    g.drawRect(snakeHead);
    g.drawOval(snakeBody);
    
    
}

错误消息实际上是不言自明的。调用Graphics类的drawRect方法:

g、 蛇头; 例如,错误消息表示该方法需要四个整数参数

g、 图5、图10、图20、图30;
但是,您传递了一个矩形对象作为参数。您需要在Graphics类中创建一个新的方法,将矩形对象作为参数,或者从snakeHead中提取坐标并将其传递给g.drawRect。

这里有一个问题。@gkhaos我很确定您不理解这个问题。您也检查了以下部分,比如Java方法参数?嗯,JDK没有任何Ellipse2D类,除非您提供了自己的类,否则编译器不知道该类型。这就是信息告诉你的。至于drawRectrectangle问题:Graphics2D有一个方法drawShape,这可能就是您尝试使用的方法。通常情况下,你得到的图形对象实际上是一个Graphics2D,所以使用instanceof测试cast应该是ok的。好的,我明白了,我假设这个方法可以用来检查碰撞等?现在我有三种方法可以做到这一点,这比我想要的方式要简单得多。例如,在头部使用变量或其他东西,而不是对象。