當我嘗試在JavaFX程序中調用swing程序的main function
時,swing程序正常運行。但是當我試圖關閉swing程序時,JavaFx程序也會終止。什麼原因?我該如何解決它?在JavaFX中調用swing軟件的主要功能將終止JavaFX軟件
這是JavaFX的程序代碼:
private void initStartGameButton() {
startButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(!isPosValid()){
return;
}
String[] args = {"" + axePositionX, "" + axePositionY, "" + boatPositionX, "" + boatPositionY};
Game.main(args);
}
});
}
這是擺程序代碼:
// The entry point of the game.
// This class loads up a JFrame window and
// puts a GamePanel into it.
package com.neet.DiamondHunter.Main;
import javax.swing.JFrame;
public class Game {
public static String[] args;
public static void main(String[] args) {
//save the args list.
Game.args = args;
JFrame window = new JFrame("Diamond Hunter");
window.add(new GamePanel());
window.setResizable(false);
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
它確實有效,但每次我關閉Swing程序。有一個例外。例外在線程 「螺紋-5」 顯示java.lang.NullPointerException \t在com.neet.DiamondHunter.Main.GamePanel.drawToScreen(GamePanel.java:117) \t在com.neet.DiamondHunter.Main.GamePanel.run(的GamePanel .java:77) \t at java.lang.Thread.run(Thread.java:745) – zhangzhimin
@zhangzhimin:這是一個完全不同的問題,你需要修復這個異常,就像其他的NullPointerException一樣。 NullPointerExceptions的啓發式幾乎總是相同的:您應該批判性地讀取異常的堆棧跟蹤以找到發生錯誤的代碼行,引發異常的行,然後仔細檢查該行,找出哪個變量爲空,然後跟蹤回到你的代碼,看看爲什麼。你會一次又一次遇到這些,相信我。 –