2011-10-11 66 views
1

以下代码绘制分子的结构。如果我没有通过一个分子,最后的结构会继续在JPanel中出现。当没有分子时,如何将其重置为空白画布。换句话说,我应该把drawMolecule()方法的其他内容放在哪里?重置JPanel中的图形

+1

我怀疑它与你的问题有关,但是你在super.paintComponents(g)中有一个错字。摆脱“s”,它应该是super.paintComponent(g); – camickr

回答

2

您可以创建在其他新的BufferedImage,或者你可以得到的BufferedImage的Graphics2D的组成部分,通过setBackground(Color c)设置它的背景色,然后通过clearRect(...)清除图像,然后在通过其dispose()方法进行处置Graphics2D对象的。

事实上,在回顾你的代码时,我没有看到你这样做。如果你自己创建了它们(如果通过它的paint或paintComponent方法从JVM中获得的话),不要忘记在使用它们的时候处理Graphics或者Graphics2D资源。

+0

我试过dispose()和clearRect()..没有工作!我也尝试过移动Graphics2D g2 =(Graphics2D)image.getGraphics(); g2.setColor(Color.WHITE); g2.fillRect(0,0,w,h);出了第二块如果块..没事! – lochi

+1

@lochi:“没有工作”告诉我们一点。将您的新代码和任何错误消息或有关错误行为的信息显示为对原始帖子的修改,然后请将我标记回原位。 –