Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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 将方法draw()添加到自定义形状类_Java_Swing_Methods_Jframe - Fatal编程技术网

Java 将方法draw()添加到自定义形状类

Java 将方法draw()添加到自定义形状类,java,swing,methods,jframe,Java,Swing,Methods,Jframe,这是我家庭作业中的一个额外问题 标题说明了一切,我已经构建了自定义的shape类,需要为每个类定义draw()方法,但是我在找到一个好的源代码教程来指导如何进行这项工作时遇到了一些困难 这正好解释了我正在尝试做什么,但是除了我已有的指导之外,没有其他的指导,所以如果有任何人有我可以利用的其他资源,我非常感谢这些链接 就我目前的情况而言: abstract public void draw(); 我在Shape类中定义了draw函数,如下所示,并在每个继承的形状中放置: public void

这是我家庭作业中的一个额外问题

标题说明了一切,我已经构建了自定义的shape类,需要为每个类定义draw()方法,但是我在找到一个好的源代码教程来指导如何进行这项工作时遇到了一些困难

这正好解释了我正在尝试做什么,但是除了我已有的指导之外,没有其他的指导,所以如果有任何人有我可以利用的其他资源,我非常感谢这些链接

就我目前的情况而言:

abstract public void draw();
我在Shape类中定义了draw函数,如下所示,并在每个继承的形状中放置:

public void draw(){}
所以他们现在什么都不做。这就是我的问题所在。我不确定从这里继续到哪里,就实际实现而言,指示形状在jframe窗口上绘制,另外,我将如何最终调用函数本身,以便在实际窗口上绘制它们

任何链接、来源或其他帖子都是非常受欢迎的,因为我的大脑现在相当混乱

谢谢

编辑1:看了一下典型的2D图形,我意识到我不能使用普通的实现,因为我的形状是如何制作的。它们是使用点参照构建的,然后基于这些点构建的,例如,我的圆看起来像这样:

class Circle extends Shape{
private static final double PI = Math.PI;
private Point point;
private double radius;

public Circle (Point p, double rad){
    point = p;
    radius = rad;
}
}

所以我不能使用普通的椭圆形(int,int,int,int,int)格式。很抱歉之前没有包括这个,brain mush。

请参阅。基本上,绘制方法应该接受图形对象,从中可以从paintComponent调用此方法,并从paintComponent方法传入图形上下文。另一个示例
abstract public void draw()可能应该是
抽象公共空白图(图g)。然后在自定义绘制面板的
paintComponent(Graphics g)
方法中,迭代形状集合并调用
currentshape.draw(g)。您可能想要一个图形对象作为绘图方法的参数。这些都是很棒的源代码!非常感谢你们的帮助!我希望我现在能完成这项工作。当你完成后,你应该发布一段你所做的事情(以及一个小的解释)来让它工作。仅供未来读者参考:-)