【发布时间】:2013-03-27 10:47:58
【问题描述】:
在我之前的帖子here 之后,我将代码更改为:
PolygonnerJframe.java
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author X2
*
*/
public class PolygonnerJframe
{
public static void main (String[] args)
{
JFrame frame = new JFrame("Draw polygons");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new DrawingPanel());
frame.pack();
frame.setVisible(true);
}
}
现在,这段代码的结果是:
我不明白是什么原因造成的。
我所做的更改是:当我们完成一个多边形时,它的坐标保存在类 Polygon 的 arrayList 中,每次我创建一个新的多边形时,我都会使用
之前的多边形并绘制它们,同时绘制一个新的多边形。
正如您在上面看到的那样,绘图出了点问题,我似乎找不到 问题。
如果有任何帮助,我将不胜感激。
谢谢
编辑:
在考虑了@StanislavL 所说的之后,我将这些行移到了mouseClicked(),但是这次每次创建一个没有“旧”多边形的新多边形时,我都会得到一个新屏幕。
只是一个新的多边形......没有旧的
【问题讨论】:
-
您没有发布最重要的部分 - 绘图代码。顺便说一句:你为什么不能使用标准的 Polygon 类?您可以从这里获取源代码java-sl.com/shapes.html,其中绘制了常规多边形。
-
@StanislavL:我当然做了,在第一个文件 (
PolygonnerJframe.java) 的函数private void draw(Graphics g, Point p1, Point p2)下。这是 HW ,因此我不能使用 Polygon 类:)