程序是实现Applet program在窗口中医红色,蓝色,绿色循环显示。我是在eclipse 下运行的。为什么以下的
for(int i=0;;)换成for(int i=0;i<20;i++)就达不到效果了呢?太奇怪了,无法理解
import java.awt.Color;import java.awt.Graphics;import javax.swing.JApplet;
public class App extends JApplet
{
public void paint(Graphics g)
{
g.setColor(Color.red);
for(int i=0;;)
{
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.red)
g.setColor(Color.blue);
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.blue)
g.setColor(Color.green);
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.green)
g.setColor(Color.red);
g.drawString("Hello applet!",50,60);
}
}
}
for(int i=0;;)换成for(int i=0;i<20;i++)就达不到效果了呢?太奇怪了,无法理解
import java.awt.Color;import java.awt.Graphics;import javax.swing.JApplet;
public class App extends JApplet
{
public void paint(Graphics g)
{
g.setColor(Color.red);
for(int i=0;;)
{
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.red)
g.setColor(Color.blue);
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.blue)
g.setColor(Color.green);
g.drawString("Hello applet!",50,60);
if(g.getColor()==Color.green)
g.setColor(Color.red);
g.drawString("Hello applet!",50,60);
}
}
}
for(int i=0;i<20;i++)执行20次,依照当前机器普遍的速度,来不及眨眼就完成了。
import java.awt.Graphics;
import javax.swing.JApplet;public class App extends JApplet {
private Color color = Color.red;
JApplet applet = this; @Override
public void init() {
applet=this;
new Thread() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
try {
Thread.sleep(1000);
if (color.equals(Color.red))
color = Color.blue;
else if (color.equals(Color.blue))
color = Color.green;
else if (color.equals(Color.green))
color = Color.red;
applet.repaint();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
public void paint(Graphics g){
g.setColor(color);
g.drawString("Hello applet!" , 50, 60);
}
}