Java Line2d.double如何设置笔划

Java Line2d.double如何设置笔划,java,graphics2d,java-2d,Java,Graphics2d,Java 2d,你好,我有一个应用程序,你点击一个点,然后点击另一个点,它画了一条笔划为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

你好,我有一个应用程序,你点击一个点,然后点击另一个点,它画了一条笔划为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);

}
}

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

提前谢谢

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

据我所知,你不能,因为,与颜色类似,笔划是Graphics2D对象的属性,而不是形状的属性。但是,您可以使用贴图将某个笔划与某个形状相关联,或者在需要时使用自定义类,例如,如果您需要将多个属性(例如笔划和颜色)与形状相关联,就像可以进行任何其他Java关联一样