#java #applet #awt #java-2d
#java #апплет #авт #java-2d #awt
Вопрос:
Ниже приведен простой код апплета, проблема в том, что цикл 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>=50amp;amp;length<=75)
setForeground(Color.cyan);
else
if(length>=75amp;amp;length<=100)
setForeground(Color.yellow);
else
if(length>=100amp;amp;length<=125)
setForeground(Color.green);
else
setForeground(Color.red);
try
{
Thread.sleep(80);
}
catch(InterruptedException ie){}
}
}
}
Комментарии:
1. Апплеты — мертвая технология. современные браузеры даже Java-апплеты больше не поддерживают. Итак, если вы хотите программировать графику на Java, используйте awt, swing или javafx.
Ответ №1:
Ответ №2:
Вы устанавливаете передний план после установки дуги, следовательно, он записывается поверх. Вот почему вы ничего не видите.
Ответ №3:
Чтобы сохранить paint, следуйте идее 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>=50amp;amp;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){}
}
}
}