【问题标题】:Creating and running a Java applet创建和运行 Java 小程序
【发布时间】:2015-10-16 19:31:53
【问题描述】:

我想我会尝试使用小程序 - 我使用 Eclipse 制作了一个小程序。使用 Run As -> Java Applet 运行良好。

我阅读了一些关于在 Eclipse 之外运行它的信息,所以我做了以下操作:

  1. 制作了一个文件夹。
  2. 新建 -> Java 项目 [applet_test]。
  3. 在项目内部,我创建了 New -> Other -> Visual Swing Class -> Applet [Number1] - 创建了Number1.class
  4. 添加了代码并将其作为 Java 小程序运行 - 运行良好。
  5. 将项目导出为 JAR 文件(不是可运行的 JAR 文件)。
  6. 使用TextEdit(Mac 的Windows 版本Notepad)编写了HTML。下面是 HTML...
  7. 我把 JAR 文件、HTML 和 .class 文件放在文件夹中。
  8. 在终端(Mac 版本的 Windows 命令提示符窗口)中,我运行了 Appletviewer applet_testX2.html(这是我的 HTML 的名称)。
  9. 我可以在屏幕顶部看到应用程序名称的短暂闪烁(与任何其他正在运行的应用程序一样)。

但是,应用程序(应该显示带有标签和按钮的 Jpanel)没有出现。我还尝试从 Firefox 和 Safari 运行它。只出现了 HTML 代码。

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

代码如下,没有导入语句:

<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>

【问题讨论】:

  • 谢谢。我没有收到任何错误。浏览器只是显示了上面显示的 HTML 文本。查看 Firefox 中的 Source 视图并没有发现任何奇怪之处。我会在上面添加它...
  • 你确定没有错误吗?有时你必须挖掘才能找到它们。如果你进入 FireFox 的工具 java 控制台怎么办?
  • “我想试试 Applets..” 为什么?除非您对嵌入网页中的富客户端有特殊需求,否则开发基于 JFrame 的应用程序会更好(也更容易)。使用 Java Web Start 启动。我通常会尽量避免使用小程序,这是来自在他们的网站上有许多小程序的人,已经开发了分数,并且工作了数百个。小程序不容易

标签: java applet


【解决方案1】:

我的猜测是这里:

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

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

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

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

【讨论】:

  • 我使用了那个默认包(可能不应该并且可能需要重做项目,因为我似乎无法重构/重命名包。
  • 见上面的评论。顺便说一句,您的 Java 代码在我的小程序中运行良好,在更正包后的 html 代码也是如此。我在 FireFox 和 Chrome 上运行它。
  • 嗯 - 首先,谢谢。我删除了这个类,并用一个包创建了一个新类。我更改了 html 以反映这一点: applet code="com.bt.applettest.Number1.class" archive="applet_test.jar" 但是,它仍然不起作用。我仍然只能在浏览器窗口中获取 html 代码。是否有我需要解决的浏览器设置?
  • 相对于 HTML 文件的 jar 文件在哪里?它们在同一个目录中吗?同样,如果使用 FireFox,您是否检查了工具菜单的 Java 控制台?
  • 已解决 需要将html文件放在eclipse项目IDE中折叠“INSIDE”的项目中(通过File>New>File...)
【解决方案2】:
                 Using Appletviewer
                 ------------------
  1. 编写小程序代码。

  2. 如果你把tomcat安装在D:

  3. 代码

-

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

输出会在你面前。

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    相关资源
    最近更新 更多