【问题标题】:Reset Graphics in JPanel在 JPanel 中重置图形
【发布时间】:2011-10-11 19:21:24
【问题描述】:

以下代码绘制分子的结构。如果我不传递一个分子,最后一个结构会继续出现在 JPanel 中。没有分子时,如何将其重置为空白画布。换句话说,我应该在 drawMolecule() 方法的 else{} 中放什么?

【问题讨论】:

  • 我怀疑这与您的问题有关,但您在 super.paintComponents(g) 中有错字。去掉“s”,应该是super.paintComponent(g);

标签: java swing jpanel graphics2d


【解决方案1】:

您可以在 else 中创建一个新的 BufferedImage,或者您可以获取 BufferedImage 的 Graphics2D 组件,通过 setBackground(Color c) 设置其背景颜色,然后通过 clearRect(...) 清除图像,然后通过其 @987654323 处理 Graphics2D 对象@ 方法。

事实上,在审查您的代码时,我没有看到您这样做。如果您自己创建了 Graphics 或 Graphics2D 资源,请不要忘记处理它们(如果是通过其 paint 或 paintComponent 方法从 JVM 获得的)。

【讨论】:

  • 我尝试了 dispose() 和 clearRect().. 没有工作!我还尝试移动 Graphics2D g2 = (Graphics2D) image.getGraphics(); g2.setColor(Color.WHITE); g2.fillRect(0, 0, w, h);在第二个 if 块之外.. 什么都没有!
  • @lochi:“没用”告诉我们很少。显示您的新代码和任何错误消息或有关不当行为的信息,作为对原始帖子的编辑,然后请给我举报。
猜你喜欢
  • 2019-07-19
  • 2011-12-11
  • 2011-10-17
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多