在for循环完成之后,为什么小程序屏幕上什么都没显示?

时间:2019-03-30 06:15:26

标签: java applet awt java-2d

下面是一个简单的Applet代码,问题是for循环完成之后。

小程序屏幕上没有任何显示。

我想for循环结束后屏幕就清除了。

我无法修复它,我想知道如何防止屏幕清除,以便我的输出出现在屏幕上。

public class ColorArcs extends Applet
{
int width=50;
int length=50;

int topx=200-25,topy=200-25;

public void paint(Graphics g)
{
    for(;length<250;)
    {
        g.drawArc(200-length/2,200-width/2,length,width,0,180);

        length+=2;
        width++;

        if(length>=50&&length<=75)
            setForeground(Color.cyan);
        else
            if(length>=75&&length<=100)
            setForeground(Color.yellow);
        else
            if(length>=100&&length<=125)
            setForeground(Color.green);
        else
            setForeground(Color.red);

        try
        {
            Thread.sleep(80);
        }
        catch(InterruptedException ie){}
    }
}
}

3 个答案:

答案 0 :(得分:1)

for循环结束后,它没有被清除。Screenshot of Applet viewer and code comment out side for loop

答案 1 :(得分:0)

设置圆弧后,您要设置前景,因此,它会被覆盖。这就是为什么您看不到任何东西的原因。

答案 2 :(得分:0)

要保持油漆的外观,请遵循Abhinav的想法。但是要更改颜色,请参见下面的代码:(所有内容都不是固定的,但是您可以从这个想法开始)

public class ColorArcs extends Applet
{
int width=50;
int length=50;

int topx=200-25,topy=200-25;

public void paint(Graphics g)
{
    for(;length<250;)
    {
        length+=2;
        width++;

        if(length>=50&&length<=75)
            setForeground(Color.cyan);

    }

    int length_ = 50; width=50;
    for(;length_<250;)
    {
        g.drawArc(200-length_/2,200-width/2,length_,width,0,180);

        length_+=2;
        width++;

        try
        {
            Thread.sleep(20);
        }
        catch(InterruptedException ie){}
    }
}
}