drawRect,fillRect,scale不匹配

时间:2016-09-26 15:59:17

标签: java swing graphics2d

我试图做一些非常简单的图画,但我似乎无法得到我需要的结果。

    /* Draw Title Bar */
    int w = window.getWidth();
    int h = 10;
    g2d.setColor(Color.blue);

    BasicStroke stroke = new BasicStroke(1.0f,BasicStroke.CAP_BUTT,
            BasicStroke.JOIN_MITER);
    g2d.setStroke(stroke);


    g2d.fillRect(window.getX(), 
            window.getY(), w, h);



    /* Draw Window Border */
    g2d.setPaint(Color.blue);
    g2d.drawRect(window.getX(), 
            window.getY()+h, 
            window.getWidth(), 
            window.getHeight());
    g2d.setColor(Color.red);
    g2d.drawLine(window.getX(), 50, window.getX()+window.getWidth(), 50);

使用g2d.scale(2.0, 2.0),结果如下:

enter image description here

它排队不正确。当scale = 1.0时,它在左侧正确,但在右侧则关闭。这是缩放问题吗?我知道fillRect和drawRect的边缘是x+w+1 / x+w,但即使你调整它仍然没有正确对齐。

1 个答案:

答案 0 :(得分:0)

除了填充上方矩形外,您还应该绘制它。如你所见,他没有边界。