更简单的方法来绘制这个?

时间:2016-06-12 22:50:58

标签: java

我正在尝试使用Java图形方法绘制一种十字准线。我写了这个,但它似乎有点矫枉过正,我觉得它可以简化得相当多。我将包括一张它看起来像的图片。

我该如何简化?

    graphics.setColor(mainColor);
    graphics.drawRect(Mouse.getPos().x - 13, Mouse.getPos().y - 13, 27, 27); // Rectangle stroke.
    graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y - 512, 1, 500);     // Top y axis stroke.
    graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y + 13, 1, 500);      // Bottom y axis stroke.
    graphics.drawRect(Mouse.getPos().x + 13, Mouse.getPos().y, 800, 1);      // Right x axis stroke.
    graphics.drawRect(Mouse.getPos().x - 812, Mouse.getPos().y, 800, 1);     // left x axis stroke.
    graphics.fillOval(Mouse.getPos().x - 3, Mouse.getPos().y - 3, 7, 7);     // Center dot stroke.
    graphics.setColor(offColor);
    graphics.drawRect(Mouse.getPos().x - 12, Mouse.getPos().y - 12, 25, 25); // Rectangle.
    graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y - 512, 0, 500);     // Top y axis line.
    graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y + 13, 0, 500);      // Bottom y axis line.
    graphics.drawRect(Mouse.getPos().x + 13, Mouse.getPos().y, 800, 0);      // Right x axis line.
    graphics.drawRect(Mouse.getPos().x - 812, Mouse.getPos().y, 800, 0);     // left x axis line.
    graphics.fillOval(Mouse.getPos().x - 2, Mouse.getPos().y - 2, 5, 5);     // Center dot.

这就是它的外观以及它应该是什么样子。 enter image description here

1 个答案:

答案 0 :(得分:1)

一种简化方法是制作一个包装Graphics#drawRect方法的方法。

示例

private static void drawRect (Graphics g, int x, int y, int width, int height)
{
    g.drawRect(Mouse.getPos().x + x, Mouse.getPos().y + y, width, height);
}

然后此调用代码来自

graphics.drawRect(Mouse.getPos().x - 13, Mouse.getPos().y - 13, 27, 27); // Rectangle stroke.
graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y - 512, 1, 500);     // Top y axis stroke.
graphics.drawRect(Mouse.getPos().x, Mouse.getPos().y + 13, 1, 500);      // Bottom y axis stroke.
graphics.drawRect(Mouse.getPos().x + 13, Mouse.getPos().y, 800, 1);      // Right x axis stroke.
graphics.drawRect(Mouse.getPos().x - 812, Mouse.getPos().y, 800, 1);     // left x axis stroke.

drawRect(graphics, -13, -13, 27, 27);  // Rectangle stroke.
drawRect(graphics, 0, -512, 1, 500);   // Top y axis stroke.
drawRect(graphics, 0, 13, 1, 500);     // Bottom y axis stroke.
drawRect(graphics, 13, 0, 800, 1);     // Right x axis stroke.
drawRect(graphics, -812, 0, 800, 1);   // left x axis stroke.