绘图图形2D java

绘图图形2D java,java,swing,graphics,2d,lines,Java,Swing,Graphics,2d,Lines,我需要在两条线之间画一个圆。单击面板时,会绘制一条线。当我再次单击时,会绘制另一条线,并且该线的颜色已更改。此外,在第二次单击时,将在两条线之间绘制一个圆。然后,有一个带圆圈的小动画。昨天有人帮了我这个忙: 但是代码有问题,可能画了一个圆。我从来没有用过这种形式的for循环,所以我不知道。如何在循环中添加内容。我也尝试了if(y==2),但它没有任何作用。“我从未使用过这种形式的for循环,所以我不知道”-对于yClicks中的每个整数值,给它变量y。您需要决定如何处理y(整数值)。如果这有助于

我需要在两条线之间画一个圆。单击面板时,会绘制一条线。当我再次单击时,会绘制另一条线,并且该线的颜色已更改。此外,在第二次单击时,将在两条线之间绘制一个圆。然后,有一个带圆圈的小动画。昨天有人帮了我这个忙:


但是代码有问题,可能画了一个圆。我从来没有用过这种形式的for循环,所以我不知道。如何在循环中添加内容。我也尝试了
if(y==2)
,但它没有任何作用。

“我从未使用过这种形式的for循环,所以我不知道”-对于
yClicks
中的每个整数值,给它变量
y
。您需要决定如何处理
y
(整数值)。如果这有助于您更好地理解它,可以将它轻松更改为
(int i=0;i
List<Integer> yClicks = new ArrayList<>(); {
    addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {  
            yClicks.add(e.getY());
            repaint();
        }
    });
}
    @Override
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D)g.create();
    for(int y : yClicks) {
        g2d.draw(new Line2D.Double(0, y, getWidth(), y));
    }
    g2d.dispose();
}    
for(int y : yClicks) {

    line1= new Line2D.Double(0, y, getWidth(), y);
    g2d.setColor(Color.blue);
    g2d.draw(line1);


    int l2= (yClicks.get(1));

    int Diameter=l2-y;
        g2d.setColor(Color.yellow);
        g2d.draw(new                Line2D.Double(0,l2,getWidth(),l2));
        g2d.draw(new Ellipse2D.Double(getWidth()/2,(Diameter),10,10));
}
g2d.dispose();
}