绘图图形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();
}