2012-04-07 68 views
0

我们如何绘制Java中的形状,就像我们在绘画中一样?由鼠标控制的形状绘图

例如,如果我想绘制矩形这个命令会绘制:

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

但我怎么能增加或减少一个对象的大小或使用鼠标像我们一样在运行时的形状在油漆?

+0

附注。人们通常推荐重写'paint()'或'paintComponent()'并使用'Graphics'对象来绘制。这里有2个例子([1](http://stackoverflow.com/a/10055672/418556),[2](http://stackoverflow.com/a/10055306/418556)),而是使用'BufferedImage' 。我们可以直接从图像中抓取图形对象,以便进行“自定义绘画”。 – 2012-04-07 17:07:57

回答

1

使用mouse listener得到鼠标的位置已经被按下后。即

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

但是,每次抽签前绘制整个屏幕的矩形清除屏幕,以便有没有在同一时间一百万矩形。这是当然最基本的例子。研究双缓冲和练习。

0

实现一个包含形状属性的形状对象。

您的面板应该维护它在需要时绘制的形状列表。还有一种形状可以连接到鼠标。

然后注册的MouseListener到面板上,将:如果您移动鼠标

  • 更新您的形状和重绘面板。
  • 创建一个新的形状,当你MOUSEDOWN
  • 释放的形状,当你鼠标松开