После завершения цикла for на экране апплета ничего не отображается? - PullRequest
0 голосов
/ 30 марта 2019

Ниже приведен простой код апплета, проблема заключается в том, что цикл 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 ]

1 голос
/ 30 марта 2019

Не очищается после завершения цикла. Screenshot of Applet viewer and code comment out side for loop

0 голосов
/ 30 марта 2019

Для поддержания краски следуйте идее Абхинава. Но для изменения цвета см. Код ниже: (все не исправлено, но вы можете начать с идеи)

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){}
    }
}
}
0 голосов
/ 30 марта 2019

Вы устанавливаете передний план после установки дуги, поэтому он перезаписывается. Вот почему вы ничего не видите.

...