如何使用drawOval()创建一个环?

时间:2013-11-28 04:30:10

标签: java swing applet

我是Java新手。我正在applet中创建一个厚实的环。我在for循环中使用drawOval方法。这会创建多个环但不会居中。请检查图像并尽快帮助我!

non-centered rings

3 个答案:

答案 0 :(得分:1)

您可以使用fillOval()以避免绘制许多不同的椭圆,这样您只需绘制2,其中一个具有边缘颜色,另一个具有背景颜色。要使椭圆居中,请尝试fillOval(origX + changeInThickness / 2, origY + changeInThickness / 2, origWidth - changeInThickness, origHeight - changeInThickness)

之类的内容

答案 1 :(得分:0)

此处您绘制的每个戒指都居中,但由于连续绘制的戒指似乎不是。因此,您可以使用鼠标按下事件在每次单击时绘制或填充椭圆。

    onMousePressed(Event e)
{
    Graphics g= getGraphics();
    g.fillOval(e.getX(),e.getY(),size,size);

}

只是观察并尝试......你自己的逻辑。

答案 2 :(得分:0)

如您所知,绘制的椭圆位于边界矩形内,您可以使用类似的东西。这是7个同心圆。您可以通过更改 for loop 条件来自定义距离,确定它们是增长同心圆还是缩小同心圆,圈数。

import java.awt.*;;
import java.applet.*;

/*
<applet code="Ellipses" width=400 height=400>
</applet>
*/

public class Ellipses extends Applet
{
    public void paint(Graphics g)
    {
        int i,j,k,l;
        for(i=170,j=170,k=50,l=50;i>=110;i-=10,j-=10,k+=20,l+=20)
        g.drawOval(i,j,k,l);
    }
}