创建和运行Java applet

时间:2011-02-17 20:28:49

标签: java applet

我以为我会尝试使用applet - 我使用Eclipse创建了一个applet。它运行正常使用Run As - > Java Applet。

我读了一些关于在Eclipse之外运行它的内容,所以我做了以下内容:

  1. 制作文件夹。
  2. 创建新 - > Java Project [applet_test]。
  3. 在项目内部,我创建了New - >其他 - >视觉摆动类 - >小程序[Number1] - 创建Number1.class
  4. 添加了代码并将其作为Java applet运行 - 运行正常。
  5. 将项目导出为JAR文件(不是可运行的JAR文件)。
  6. 使用TextEdit(Mac的Windows版本Notepad)编写HTML。 HTML紧随其后......
  7. 我将JAR文件,HTML和.class文件放在文件夹中。
  8. 在终端(Mac的Windows命令提示符窗口版本)中,我运行了Appletviewer applet_testX2.html(这是我的HTML的名称)。
  9. 我可以在屏幕顶部看到应用程序名称的简短闪烁(与任何其他正在运行的应用程序一样)。
  10. 但是,应用程序(应该显示带有标签和按钮的Jpanel)没有出现。我也试过从Firefox和Safari运行它。只出现了HTML代码。

    那么,我做错了什么?而且,更重要的是,我该如何正确地做到这一点?

    代码后面没有import语句:

    <html>
        <body>
            <applet code="Number1.class" archive="applet_test.jar"
                width=300
                height=300>
            </applet>
        </body>
    </html>
    

    Java代码:

    public class Number1 extends JApplet {
        public Number1() {
    
        }
    
        private static final long serialVersionUID = 1L;
    
        @Override
        public void init() {
            try {
                EventQueue.invokeAndWait(new Runnable() {
                    @Override
                    public void run() {
                        initComponents();
                    }
                });
            }
            catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        private void initComponents() {
            setSize(320, 240);
    
            JPanel panel = new JPanel();
            getContentPane().add(panel, BorderLayout.CENTER);
    
            JLabel lblAppletTest = new JLabel("Applet test 1");
            panel.add(lblAppletTest);
    
            JButton btnPushIt = new JButton("Push it");
            panel.add(btnPushIt);
        }
    }
    

    Firefox源视图:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <meta http-equiv="Content-Style-Type" content="text/css">
            <title></title>
            <meta name="Author" content="BT">
            <meta name="Generator" content="Cocoa HTML Writer">
            <meta name="CocoaVersion" content="1038.35">
            <style type="text/css">
                p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica}
                p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; min-height: 19.0px}
            </style>
        </head>
        <body>
            <p class="p1">&lt;html&gt;</p>
            <p class="p1"><span class="Apple-converted-space"> </span>&lt;body&gt;</p>
            <p class="p1"><span class="Apple-converted-space">   </span>&lt;applet code="Number1.class" archive="applet_test.jar"</p>
            <p class="p2"><br></p>
            <p class="p1"><span class="Apple-converted-space">    </span>width=300</p>
            <p class="p1"><span class="Apple-converted-space">   </span>height=300&gt;</p>
    
            <p class="p1">&lt;/applet&gt;</p>
            <p class="p1">&lt;/body&gt;</p>
            <p class="p1">&lt;/html&gt;</p>
        </body>
    </html>
    

2 个答案:

答案 0 :(得分:2)

我的猜测是:

<applet code="Number1.class" archive="applet_test.jar"

你没有考虑包裹。例如,如果包是myPackage.vol3,那么该行应该是

<applet code="myPackage.vol3.Number1.class" archive="applet_test.jar"

但如果这没有帮助,您需要提取浏览器提供给您的任何错误消息并编辑原始帖子以向我们展示它们是什么。

答案 1 :(得分:0)

                 Using Appletviewer
                 ------------------
  1. 编写Applet代码。

  2. 如果您在D:

  3. 中安装了tomcat
  4. -

    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    
    public class MyApplet extends Applet
    {
        public void init()
        {
            System.out.println("init intilize");
            GridLayout g=new GridLayout(4,6,0,0);
            setLayout(g);
            MyListener m=new MyListener();
    
            for(int i=1;i<=12;i++)
            {
                Button b=new Button("ok"+i);
                add(b);
                b.addActionListener(m);
            } 
        }//end of init
    
        public void start()
        {
            System.out.println("applet started");
        }//end of start
    
        public void stop()
        {
            System.out.println("applet stop");
        }//end of 
    
        public void paint(Graphics g)
        {
          g.drawString("Naveed",200,25);
          g.drawOval(20,30,30,20);
          System.out.println("applet paint");
        }//end of start
    
        public void destroy()
        {
            System.out.println("applet destroy");
        }//end of start
    }
    
    class MyListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            System.out.println("button clicked");
        }//end of actionPerformed
    }
    

    现在将此代码保存在D:中,而不是保存在子文件夹中。

    首先编译它。

    打开cmd

    cd D:

    `javac MyApplet.java -d classpath D:\Tomcat\common\lib\servlet.jar`
    

    这将生成 MyApplet.class 文件

    现在制作一个html文件。

    <html>
    <body>
        <applet code="Number1.class" width=30  height=300 > </applet>
    </body>
    </html>
    

    使用你想要的名字保存,让我们说 app.html

    立即运行html文件。

    在cmd窗口中

    appletviewer app.html

    输出将在你面前。