我知道如何导出 Jar 文件并且以前有很多次。在我当前的项目中,我能够完美地导出和运行它,但是只要我在单击按钮加载它时将另一个 JFrame 添加到项目中,JFrame 就不会加载,而是 JAR 只是冻结。不会崩溃或任何东西,只是冻结。这是个常见的问题吗?可以做些什么来修复它?
第一个 JFrame
JFrame frame = new JFrame();
public Launcher(int id) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
frame.setUndecorated(true);
frame.setTitle("Launcher");
frame.setSize(new Dimension(width, height));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
window.setLayout(null);
打开第二个 JFrame 的代码
if (Input.Clicked == 1) {
config.loadConfig("res/Config/config.xml");
frame.dispose();
new NewLauncher();
}
NewLauncher() 的代码
public NewLauncher() {
Display app = new Display();
JFrame frame = new JFrame();
frame.add(app);
frame.setSize(Display.getGameWidth(), Display.getGameHeight());
frame.getContentPane();
frame.setTitle(Display.TITLE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.start();
stopMenuThread();
}
用事件队列编辑
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable()
{
public void run()
{
new Launcher(0);
}
});
//new Launcher(0);
}
代码在调试器和编译器中运行良好。仍然无法在 Jar 中运行,我这样做是否正确?