如何将小程序作为应用程序运行?

2024-02-15

我有一个 Applet 类,我想让它作为应用程序运行,所以我编写了以下代码:

public static void main(String args[]) {
JFrame app = new JFrame("Applet Container");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(200, 100);
Hangman applet = new Hangman();
applet.init();
app.setLayout(new BorderLayout());
app.setSize(500,500);
app.getContentPane().add(applet, BorderLayout.CENTER);
app.setVisible(true);
}

注意:Hangman 是小程序类。如果我运行它,它工作得很好,但我想做的是让它作为应用程序运行。

当我运行上面的 main 时,出现以下错误:

Exception in thread "main" java.lang.NullPointerException
at java.applet.Applet.getCodeBase(Applet.java:152)
at Me.Hangman.init(Hangman.java:138)
at Me.Client.main(Client.java:54)
Java Result: 1

此错误来自 Hangman 类中的这一行:

danceMusic = getAudioClip(getCodeBase(), "../../audio/dance.au");

GetCodeBase() 方法返回 null,我需要有关如何使此方法正常工作的帮助,或者可能用另一种可以访问我的文件以获取资源的方法替换它?

先感谢您


Applet 有一个特殊的运行环境。如果您希望代码也作为应用程序运行,那么您不能依赖该环境提供的任何功能。

显然你正在使用Applet-具体功能在这里。您必须搜索如何在应用程序中完成此操作,然后检测您正在运行的环境并使用适当的方法。

Edit:

代替getCodeBase()我会尝试:

getClass().getProtectionDomain().getCodeSource().getLocation();

But getAudioClip也在小程序中定义,所以这也是不行的。代替java.applet.AudioClip你必须使用javax.sound.sampled API.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将小程序作为应用程序运行? 的相关文章

随机推荐