小程序不会运行(表示未初始化)



基本上,我已经提到了java文件中的HTML代码,但是由于某些原因applet无法执行,帮帮我

import java.awt.*;
import java.applet.*;
/*
<applet code = "demo.java" width=400 height=200>
<param name="txt" value ="Hey">
 </applet> 
*/
class demo extends Applet {
    public void paint(Graphics g)
    {
        String string = getParameter("txt");
        g.drawString(string, 29, 40);
        start();
    }
}
<applet code = "demo.java" width=400 height=200>
<param name="txt" value ="Hey">
</applet> 

code参数不正确。它应该是完全限定的类名。或者. .

<applet code = "demo" width=400 height=200>
<param name="txt" value ="Hey">
</applet> 

编译&从命令行在applet查看器中启动它,执行如下操作:

prompt> javac demo.java
prompt> appletviewer demo.java // (see Note)

注:是我表示.java扩展。appltviewer可以从源代码中嵌入的注释启动applet。请参阅Applet信息。页(在编译和启动:)的另一个例子。

问题/评论

调试
  • 确保Java控制台配置为显示applet &jw应用。如果没有默认级别的输出,触发它并重试。
  • 复制/粘贴所有错误&控制台提供的异常输出。
  • 代码
    1. applet代码本身最好声明一个String txt,它被声明为一个类属性,并在init()方法中初始化,就像这个txt = getParameter("txt");paint(Graphics)方法可能被多次调用。
    2. 任何时候paint(..)方法被覆盖,它应该立即调用super.paint(..)(对于BG颜色,如果没有别的)。

    问题
      为什么要编写applet?如果是老师的原因,请参考为什么CS老师应该停止教Java小程序。
    1. 为什么是AWT而不是Swing?关于放弃使用AWT组件的许多很好的理由,请参阅我对Swing附加组件在AWT上的回答。

    应该给出类名而不是Java文件名。通过applet教程来更好地理解。

    试试这个,

    import java.awt.*;
    import java.applet.*;
    public class demo extends Applet {
        public void run(){
            repaint();
        }   
        public void paint(Graphics g)
        {
            String string = getParameter("txt");
            g.drawString(string, 29, 40);
        }
    }
    /*
    <html>
    <applet code = "demo.java" width=400 height=200>
    <param name="txt" value ="Hey">
     </applet> 
    </html>
    */
    

    最新更新