gpt4 book ai didi

java 小程序 ExceptionInInitializerError

转载 作者:行者123 更新时间:2023-12-01 11:40:05 24 4
gpt4 key购买 nike

我是 Applet 编程新手,想要制作一个 Applet 放在网站上。那么我们开始吧。

这个项目的目标是,如果您单击该按钮,它将在浏览器顶部打开一个 JFrame。但在测试时,它给了我一个 java.lang.ExceptionInInitializerError 。这是源代码:

public class LaunchMenu extends Applet {

public static LoginScreen login;
public static Game game;
public JButton button;
public void init() {
try {button= new JButton("Press this button to start");
add(button);

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
login = new LoginScreen();

}
});
} catch (Exception e) {
e.getMessage();
e.getCause();
}
}

public void start() {
login = new LoginScreen();
}

public void stop() {
login.dispose();
game.stop();
}

public static void main(String[] args) {

}

}

注意:它可以在 Eclipse 中的 Applet 窗口中运行,但不能在网站上运行。

编辑:

Exception in thread "AWT-EventQueue-2" java.lang.IllegalStateException: Applet's parent container not set up
at sun.plugin2.applet.Plugin2Manager.start(Unknown Source)
at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
CacheEntry[http://localhost/AppletTest/Applet.jar]: updateAvailable=true,lastModified=Mon Apr 13 12:24:52 CEST 2015,length=5051938

最佳答案

好的,我解决了我的问题。这是对我有用的解决方案。

源代码保持不变(除了微小的变化)*:

public class LaunchMenu extends Applet {

public static LoginScreen login;
public static Game game;
public JButton button;
public void init() {
try {button= new JButton("Start the game");
add(button);

button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
login = new LoginScreen();
login.setVisible(true); *

}
});
} catch (Exception e) {
e.getMessage();
e.getCause();
}
}

public void start() {
login = new LoginScreen();
}

public void stop() {
login.dispose();
game.stop();
}

public static void main(String[] args) {

}
}

但我在 Applet 所在的文件夹中添加了一个 java.policy 文件。在此文件中我编写了以下代码:

grant { 
permission java.security.AllPermission;
};

设置完成后,我遇到了另一个名为 java.lang.RuntimePermission: "exitVM.0"

的问题

这个问题的解决方案很简单。在我的 JFrame 类中,在我的 LoginScreen 示例中,有一行代码 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);。删除它或评论它,这对我有用,现在我的小程序可见并且登录框架打开。这就是我所需要的。

希望这可以帮助很多遇到同样问题的人。

关于java 小程序 ExceptionInInitializerError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603818/

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