【问题标题】:Simple JApplet Getting "NoClassDefFoundError" and don't know where it coming from简单的 JApplet 获取“NoClassDefFoundError”并且不知道它来自哪里
【发布时间】:2014-03-29 16:55:06
【问题描述】:

我正在尝试使用 Java 小程序制作一个杂耍程序,当我使用 eclipse 制作和查看 JApplet 时一切都很好,但是当我在浏览器中运行代码时,我得到 NoClassDefFoundError 这意味着有一些我的程序中在JApplet 中未定义的部分。

这是我的代码:

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;
import javax.imageio.*;
import javax.swing.*;

public class Applet extends JApplet {
    private int i = 0;
    private Button prev = new Button("prev");
    private Button next = new Button("next");

    public void init() {
        setSize(1100, 875);
        prev.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (i == 0)
                    i = getList().length - 1;
                else
                    i--;
                repaint();
            }
        });

        next.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (i == getList().length - 1)
                    i = 0;
                else
                    i++;
                repaint();
            }
        });

        Panel buttons = new Panel();
        buttons.setLayout(new FlowLayout());
        buttons.add(prev);
        buttons.add(next);
        setLayout(new BorderLayout());
        add("South", buttons);
    }

    public void paint(Graphics g) {
        setImg(g, getImgPath());
    }

    public String[] getList() {
        String[] str = { "./ (1).jpg", "./ (2).jpg", "./ (3).jpg","./ (4).jpg","./ (5).jpg","./ (6).jpg","./ (7).jpg","./ (8).jpg" };
        return str;
    }

    public String getImgPath() {
        return getList()[i];
    }

    public void setImg(Graphics g, String str) {
        try {
            URL url = new URL(getCodeBase(), str);
            BufferedImage img = ImageIO.read(url);
            g.drawImage(img, 50, 50, null);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

我的html代码

<html>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252" />

<body>
    <applet code=Applet.class width="200" height="200">
    </applet>
</body>

</html>

屏幕截图:

下载所有内容: https://www.dropbox.com/s/v0jqui0nomfb4zx/Code.zip

我的问题是我的程序的哪一部分未为 JApplet 定义

谢谢。

【问题讨论】:

  • 请安装java最新插件
  • 最新插件有什么用?
  • 您是否点击了详细信息按钮?

标签: java swing noclassdeffounderror japplet


【解决方案1】:

符号$Applet$1 指的是anonymous inner class,可能是您的小程序的ActionListener。您的 HTML 需要指定包含 all 类的 JAR 的位置,而不仅仅是封闭类。以下是需要考虑的几件事:

  • 将您的小程序设为hybrid 以便于开发。

  • 使用,如second example 所示,以便于部署。

  • 不要使用现有的超类名称,例如Applet,用于您的子类。

【讨论】:

    猜你喜欢
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2015-07-14
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多