gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:14 25 4
gpt4 key购买 nike

我有一个 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 是小程序类。如果我运行它,它工作正常,但我想做的是让它作为应用程序运行。

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

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 特定的功能。您必须搜索如何在应用程序中完成此操作,然后检测您运行的环境并使用适当的方法。

编辑:

代替 getCodeBase() 我会尝试:

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

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

关于java - 如何将小程序作为应用程序运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com