Java Line2d.double如何设置笔画

时间:2015-09-05 15:36:39

标签: java graphics2d java-2d

您好我有一个应用程序,您单击一个点,然后anotherand它绘制一个行程为20的行。我希望能够单击该行的任何部分并将其删除。

private Shape line = new Line2D.Double(x, y, fx, fy);

public highlight(int x, int y, int fx, int fy, int page, boolean fin) {
    this.x = x;
    this.y = y;
    this.fx = fx;
    this.fy = fy;

    line = new Line2D.Double(x, y, fx, fy);

    this.fin = fin;

    this.page = page;
}

public void tick() {
    line = new Line2D.Double(x, y, fx, fy);

    if (!fin) {
        play.cannotdrawline = true;
        fx = Comp.mx;
        fy = Comp.my;
    } else {
        play.cannotdrawline = false;

    }

    if(line.intersects(Comp.mx,Comp.my,1,1) && play.candeleteline){
        if(Comp.ml){
            remove = true;
        }
    }
}

public void render(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;

    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2d.setStroke(new BasicStroke(20, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));

    // g.setColor(new Color(190,240,93, 143));
    if (line.intersects(Comp.mx, Comp.my,1,1) && play.candeleteline) {
        g.setColor(Color.blue);
    } else {
        g.setColor(Color.red);

    }
    g.drawLine(x, y, fx, fy);
    //g2d.draw(line);

}

}

这一切都很好,我可以删除它,但我必须点击一个像素的中间一行才能删除它。我知道如何设置绘制线条的笔划,但我不知道如何设置线条形状的笔划(这是检查是否可以删除线条的部分)。我怎么能这样做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

我知道如何设置绘制线条的笔划,但我不知道如何设置线条形状的笔划(这是检查是否可以删除线条的部分)。我怎么能这样做?

据我所知,你不能因为,类似于Color,Stroke是Graphics2D对象的属性而不是Shape的属性。但是,您可以使用Map将某个Stroke与某个Shape相关联,或者根据需要使用自定义类,例如,如果您需要将多个属性(如Stroke和Color)与Shape相关联,就像可以创建任何其他Java关联一样。