我正在尝试制作一个Java Applet,它将允许我在画布中绘制图形数据结构。我将通过单击我想要创建节点的位置并单击节点来连接它们来完成此操作。问题是我不能让paint()
方法正确行为。我添加mousePressed(MouseEvent e)
方法内的图形新节点(和画布上正方形)使用,Java 2D图形矩形
Graphics g = this.getGraphics();
g.setColor(Color.blue);
g.fillRect(e.getX(), e.gety(), 40, 40);
一切工作正常,直到我调整窗口的大小,然后将所有的填充的矩形消失。我重写了paint方法只是一个空方法,但同样的事情仍然发生。我不能在paint()内部添加fillRect命令,因为我不知道在用户使用鼠标与它进行交互之前存在什么矩形。
如何在鼠标侦听器方法中使用g.fillRect()
并让它们粘住?
这似乎是最简单的方法,我创建了一个新的BufferedImage,然后在其上绘制了所有的形状,并使绘制方法绘制图像。谢谢! – PherricOxide 2009-11-26 06:37:39
没问题,尽管最终可能需要完全重新绘制,所以请记住Kyl的建议。 (还有,记得投票并“接受”你喜欢的答案,我想要我的业力点:) – Gunslinger47 2009-11-26 06:46:28
在这种特殊情况下,保存数据可能比缓存图像更好。但是,+ 1为了获得两个极端。 – 2009-11-26 06:46:31