如何在paintComponent方法中初始化和绘制Rectangle变量?

时间:2013-10-16 19:05:24

标签: java swing variables graphics paintcomponent

我一直在尝试为我的游戏添加碰撞,它看起来像小菜一碟,我已经知道如何绘制一个矩形。但是我需要用变量来表示这个矩形。但似乎没有像 g.drawRect(myRectangleVariable)这样的方法。我需要做一些if语句检查交集,但如果我没有矩形变量那么我要比较什么?如果你们需要我的任何代码,请告诉我。

4 个答案:

答案 0 :(得分:3)

为什么不做呢

g.drawRect(myRectangleVariable.x, 
           myRectangleVariable.y, 
           myRectangleVariable.width, 
           myRectangleVariable.height);

答案 1 :(得分:2)

因此,请创建一个变量来保存Rectangle:p

Rectangle rect = new Rectangle(0, 0, 50, 50);
g.drawRect(rect);

答案 2 :(得分:2)

您应该使用2D Shape对象,例如矩形;

像:

    Graphics g = // get your graphic object from Component
    Graphics2D g2d = (Graphics2D) g;
    java.awt.geom.Rectangle2D.Double rect = new Rectangle2D.Double(x, y, width, height);
    g2d.draw(rect);

好处:您将获得许多功能,如寻找交叉点和其他精美的2D事物。

答案 3 :(得分:0)

首先,像这样创建矩形变量(只需在Rectangle参数中输入矩形的坐标和大小):

Rectangle rectangle = new Rectangle(x, y, width, height)

接下来,使用graphics2D进行绘制。使用g2d.draw()函数,因为drawRect()函数不接受矩形。

g2d.drawRect(rectangle)

这就是你的做法。

执行此操作而不是仅使用drawRect()函数的好处是您可以使用矩形作为按钮,因为您可以检查鼠标是否在矩形中并单击了它。然后,您可以更改矩形上的内容(例如大小),使其更加精美有趣。

P.S。如果您不了解鼠标部分,只需搜索MouseMotionListener和MouseListener。