Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法理解Java中的小程序和线程代码_Java_Multithreading_Applet - Fatal编程技术网

我无法理解Java中的小程序和线程代码

我无法理解Java中的小程序和线程代码,java,multithreading,applet,Java,Multithreading,Applet,因此,我目前正在学习Java小程序,并编写了这段代码,其中包含一个小程序和一个线程,以便让小程序使用repaint()方法滚动消息字符串 谢谢小程序容器在创建小程序时调用init,在使小程序可见时启动,在小程序消失时停止(就像您离开托管小程序的页面一样)。在init方法中将t字段设置为null没有任何作用,因为无论如何创建对象时它都将为null。通过从字符串的开头提取一个字符并将其放在字符串的末尾,然后在小程序窗口中重新显示该字符串,可以滚动消息。线程每250毫秒执行一次,直到小程序停止 小程序

因此,我目前正在学习Java小程序,并编写了这段代码,其中包含一个小程序和一个线程,以便让小程序使用repaint()方法滚动消息字符串


谢谢

小程序容器在创建小程序时调用init,在使小程序可见时启动,在小程序消失时停止(就像您离开托管小程序的页面一样)。在init方法中将t字段设置为null没有任何作用,因为无论如何创建对象时它都将为null。通过从字符串的开头提取一个字符并将其放在字符串的末尾,然后在小程序窗口中重新显示该字符串,可以滚动消息。线程每250毫秒执行一次,直到小程序停止


小程序是一种过时的技术。

你意识到没有理由学习小程序了吗?他们几乎都死了。也就是说,这里没有理由将
init()
线程t设置为null
t
在小程序类首次加载时或调用
stop()
时已为空。附录:小程序容器很长一段时间以来都在小程序可见时快速连续调用
init()
start()
,以及
stop()
destroy()
当它不再可见时快速连续。寓意:你不能真正依赖这四种方法的时间,它们取决于容器。
import java.awt.*;
import java.applet.*;

/*
<applet code="Banner" width=300 height=50>
</applet>
*/

public class Banner extends Applet implements Runnable
{
    String msg = " Java Rules the Web ";
    Thread t;
    boolean stopFlag;

    public void init()
    {
        t = null;
    }

    public void start()
    {
        t = new Thread(this);
        stopFlag = false;
        t.start();
    }

    public void run()
    {
        for(;;)
        {
            try
            {
                repaint();
                Thread.sleep(250);
                if(stopFlag)
                    break;
            }
            catch(InterruptedException exc)
            {

            }
        }
    }

    public void stop()
    {
        stopFlag = true;
        t = null;
    }

    public void paint(Graphics g)
    {
char ch;
    ch = msg.charAt(0);
        msg = msg.substring(1, msg.length());
        msg += ch;
        g.drawString(msg,50,30);
    }
}
public void paint(Graphics g)
    {
char ch;
    ch = msg.charAt(0);
        msg = msg.substring(1, msg.length());
        msg += ch;
        g.drawString(msg,50,30);
    }
}