【问题标题】:Shape drawing controlled by mouse鼠标控制形状绘制
【发布时间】:2012-04-20 19:53:04
【问题描述】:

我们如何像在绘画中一样在 Java 中绘制形状?

例如,如果我想绘制矩形,此命令将绘制它:

g2.fill3DRect(mt, mf, 45, 45, true); 

但是我怎样才能像在绘画中那样在运行时使用鼠标来增加或减小对象或形状的大小?

【问题讨论】:

  • 旁注。人们通常建议覆盖 paint()paintComponent() 并使用 Graphics 对象进行绘画。这里有 2 个示例(12),它们使用BufferedImage。我们可以直接从图像中抓取图形对象,以进行“自定义绘画”。

标签: java graphics awt paint mouselistener


【解决方案1】:

实现一个保存形状属​​性的形状对象。

您的面板应该维护一个它在需要时绘制的形状列表。也可以将一种形状附加到鼠标上。

然后在您的面板上注册一个鼠标监听器,它将:

  • 如果您移动鼠标,请更新您的形状并重绘面板。
  • 鼠标按下时创建一个新形状
  • 鼠标向上时释放形状

【讨论】:

    【解决方案2】:

    使用mouse listener 获取鼠标按下后的位置。即

    g2.fill3DRect(mt, mf, mouse.getX(), mouse.getY(), true); 
    

    但是在每次绘制之前通过在整个屏幕上绘制一个矩形来清除屏幕,这样就不会同时出现一百万个矩形。这当然是最基本的例子。研究双缓冲并练习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2020-07-17
      • 2012-08-16
      • 1970-01-01
      • 2016-06-10
      相关资源
      最近更新 更多